私はfactory_boyを使用してテストフィクスチャを作成しています。私は、SQLAlchemyモデル(以下で簡略化)に裏打ちされた2つのシンプルな工場を持っています。factory_boyファクトリで重複を避ける
AddressFactory.create()
に複数回お電話できたら、Country
がまだ存在しない場合は作成してください。それ以外の場合は、既存のレコードを再利用します。
class CountryFactory(factory.Factory):
FACTORY_FOR = Country
cc = "US"
name = "United States"
class AddressFactory(factory.Factory):
FACTORY_FOR = Address
name = "Joe User"
city = "Seven Mile Beach"
country = factory.SubFactory(CountryFactory, cc="KY", name="Cayman Islands")
私の質問は:factory_boyは新しい国にそれがアドレスを作成するたびに作成しようとしないように、私はこれらの工場を設定することができますか?最新の工場出荷時の少年で
あなたは[factory.alchemy](https://github.com/rbarrois/factory_boy/blob/master/factoryを見てみませんでした/alchemy.py)? – javex
あなたはそのリンクで何を参照しているのか分かりません。その特定のファイルには役立たないものは何もありません。私は特にfactory_boyとSQLAlchemyファクトリのドキュメントを見てきましたが、レコードの再利用については何も見ていません。基本的には、「検索または作成」タイプの機能を探しています。 –
これについてさらに研究した後、短い答えはあなたがそれをすることができないということです。 [Djangoモデルでの作成/作成](https://factoryboy.readthedocs.org/en/latest/orms.html#factory.django.DJangoModelFactory.FACTORY_DJANGO_GET_OR_CREATE)はサポートされていますが、SQLAlchemyではサポートされていません。私はこの質問を開いたままにしています。なぜなら、誰も私に打ちのめされなければ、この1つのSQLAlchemyサポートを追加することを望んでいるからです。 –