草庐IT

python - FactoryBoy - 嵌套工厂/最大深度?

我正在为一个大型Django应用程序编写测试,作为这个过程的一部分,我正在逐渐为Django项目中不同应用程序的所有模型创建工厂。但是,我在FactoryBoy中遇到了一些令人困惑的行为,它几乎看起来像SubFactories。有一个最大深度,超过这个深度就不会生成实例。当我尝试运行以下测试时出现错误:deftest_subfactories(self):"""Verifythatthefactoryisabletoinitialize"""user=UserFactory()self.assertTrue(user)self.assertTrue(user.profile)self.

python - Factory Boy 随机选择字段选项 "choices"

当Django模型中的字段具有选项选项时,请参阅Djangochoicesfieldoption,它利用包含2个项目的可迭代对象的可迭代对象来定义允许哪些值。例如:模型classIceCreamProduct(models.Model):PRODUCT_TYPES=((0,'SoftIceCream'),(1,'HardIceCream'),(2,'LightIceCream'),(3,'FrenchIceCream'),(4,'Italian-styleGelato'),(5,'FrozenDairyDessert'),)type=models.PositiveSmallIntege

Python 动态函数名称

我正在寻找一种更好的方法来调用基于Python中的变量的函数,而不是使用如下的if/else语句。每个状态码都有对应的功能ifstatus=='CONNECT':returnconnect(*args,**kwargs)elifstatus=='RAWFEED':returnrawfeed(*args,**kwargs)elifstatus=='RAWCONFIG':returnrawconfig(*args,**kwargs)elifstatus=='TESTFEED':returntestfeed(*args,**kwargs)...我假设这将需要某种工厂函数,但不确定语法

python - 如何使用 SqlAlchemy 从数据库生成 Fixture

我开始使用Flask-SQLAlchemy编写测试,我想为它们添加一些固定装置。我的开发数据库和大量表格中有很多好的数据,因此手动写入数据会很烦人。我真的很想将开发数据库中的数据采样到固定装置中,然后使用它们。执行此操作的好方法是什么? 最佳答案 我会用factoryboy要创建一个模型工厂,您只需执行以下操作:importfactoryfrom.importmodelsclassUserFactory(factory.Factory):classMeta:model=models.Userfirst_name='John'last

Django 模型中的 Python factory_boy 库 m2m?

我目前正在使用factory_boy在我的测试中创建固定装置。Factory_boy文档只提到了SubFactory,它可以像模型中的ForeignKey字段一样工作。但是,ManyToMany关联上没有任何内容。如果我有以下Post模型,我将如何为它创建一个工厂?classPost(models.Model):title=models.CharField(max_length=100)tags=models.ManyToManyField('tags.Tag')classPostFactory(factory.Factory):FACTORY_FOR=Posttitle='Mytit

python - 为什么这个已弃用的 Factory.set_creation_function 的替代方法不能与 nosetests 一起使用?

FactoryBoy弃用了set_creation_function(参见ChangeLog2.6.1)并建议开发人员Replacefactory.set_creation_function(SomeFactory,creation_function)withanoverrideofthe_create()methodofSomeFactory我有i)许多派生工厂类和ii)我的数据库session在另一个模块中实例化,所以我尝试替换https://github.com/mattupstate/overholt中的工作示例下面的第二个代码块。PyCharm警告我没有使用“db”导入,所以

python - 有人在 Python/其他语言中使用 meta-meta-classes/meta-meta-meta-classes 吗?

我最近发现了python中的元类。基本上,python中的元类是创建类的类。有很多有用的理由可以解释为什么要这样做——例如任何类型的类初始化。在工厂上注册类、复杂的属性验证、改变继承的工作方式等。所有这些不仅可能而且变得简单。但是在python中,元类也是普通类。所以,我开始想知道抽象是否可以有用地提高,在我看来它可以而且:元类对应于或实现模式中的角色(如GOF模式语言)。元-元类是模式本身(如果我们允许它创建表示抽象角色的类的元组,而不仅仅是单个类)元元元类是一个模式工厂,对应于GOF模式分组,例如创造的,结构的,行为的。一个工厂,您可以在其中描述特定类型问题的案例,它会为您提供一组

python - 有人在 Python/其他语言中使用 meta-meta-classes/meta-meta-meta-classes 吗?

我最近发现了python中的元类。基本上,python中的元类是创建类的类。有很多有用的理由可以解释为什么要这样做——例如任何类型的类初始化。在工厂上注册类、复杂的属性验证、改变继承的工作方式等。所有这些不仅可能而且变得简单。但是在python中,元类也是普通类。所以,我开始想知道抽象是否可以有用地提高,在我看来它可以而且:元类对应于或实现模式中的角色(如GOF模式语言)。元-元类是模式本身(如果我们允许它创建表示抽象角色的类的元组,而不仅仅是单个类)元元元类是一个模式工厂,对应于GOF模式分组,例如创造的,结构的,行为的。一个工厂,您可以在其中描述特定类型问题的案例,它会为您提供一组

python - 避免与 factory_boy 工厂重复

我正在使用factory_boy创建测试装置。我有两个简单的工厂,由SQLAlchemy模型支持(在下面进行了简化)。我希望能够多次调用AddressFactory.create(),并让它创建一个Country(如果它尚不存在),否则我希望它重新使用现有记录。classCountryFactory(factory.Factory):FACTORY_FOR=Countrycc="US"name="UnitedStates"classAddressFactory(factory.Factory):FACTORY_FOR=Addressname="JoeUser"city="SevenMi

python - 避免与 factory_boy 工厂重复

我正在使用factory_boy创建测试装置。我有两个简单的工厂,由SQLAlchemy模型支持(在下面进行了简化)。我希望能够多次调用AddressFactory.create(),并让它创建一个Country(如果它尚不存在),否则我希望它重新使用现有记录。classCountryFactory(factory.Factory):FACTORY_FOR=Countrycc="US"name="UnitedStates"classAddressFactory(factory.Factory):FACTORY_FOR=Addressname="JoeUser"city="SevenMi