gpt4 book ai didi

python - 避免与 factory_boy 工厂重复

转载 作者:太空狗 更新时间:2023-10-29 17:07:47 25 4
gpt4 key购买 nike

我正在使用 factory_boy创建测试装置。我有两个简单的工厂,由 SQLAlchemy 模型支持(在下面进行了简化)。

我希望能够多次调用 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-boy==2.3.1中可以添加FACTORY_DJANGO_GET_OR_CREATE

class CountryFactory(factory.django.DjangoModelFactory):
FACTORY_FOR = 'appname.Country'
FACTORY_DJANGO_GET_OR_CREATE = ('cc',)

cc = "US"
name = "United States"

假设 cc 字段是唯一标识符。

关于python - 避免与 factory_boy 工厂重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19147115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com