问题标签 [factory-boy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1108 浏览

python - Lack of ROLLBACK within TestCase causes unique contraint violation in multi-db django app

I'm just getting started with the factory_boy django library for test factories, and having an issue with a duplicate key constraint violation.

test_member_programme.py

factories.py


When running the first test passes successfully, but the second fails with the following error:

My understanding is that every TestCase should run within a transaction, yet the creation of the foreign key does not appear to have rolled back before the second test runs. Clearly I'm doing something fundamentally wrong, but I'm a bit stumped! Thanks!


I've tracked down the problem, but unfortunately don't know how to resolve it. The issue is that ROLLBACKs are occurring, but only on one database (this app has 2 databases). For legacy reasons, we have a separate database for django auth, flatpages etc and another db for our app.


Someone with a similar problem here.

0 投票
3 回答
1586 浏览

python - 在 Factory Boy 的对象工厂中重写模型 @property

我想找到一种使用 Factory Boy 正确测试我的代码的方法。

有一个模型,像这样:

这个模型有一个工厂:

任何人都可以帮助我吗?我没有在工厂男孩的文档中找到关于此的提及,而且我尝试过的各种变体似乎都不起作用。

0 投票
1 回答
812 浏览

python - 让 LiveServerTestCase 在每次测试前不调用 setUp()

我在使用 LiveServerTestCase 测试 django 应用程序时遇到了一个问题。LiveServerTestCase 在执行每个测试之前执行 setUp() 函数。但我正在使用工厂男孩的工厂来创建用于测试的对象(用户、项目等......)。并且在执行每个测试之前创建相同的对象。如何一次创建此对象并进行所有测试以在数据库中查看此对象?

0 投票
2 回答
1015 浏览

python - 如何使用 factory_boy 为 MongoEngine EmbeddedDocument 建模?

我正在尝试使用 factory_boy 来帮助为我的测试生成一些 MongoEngine 文档。我在定义EmbeddedDocumentField对象时遇到了麻烦。

这是我的 MongoEngine Document

这是我部分完成的 factory_boy Factory

任何想法如何指定comments字段?问题是工厂男孩试图创建CommentEmbeddedDocument。

0 投票
2 回答
11701 浏览

unit-testing - factory_boy 中的多对多关系?

我正在尝试使用 factory_boy 测试两个 Django 模型之间的多对多关系。factory_boy 文档似乎没有讨论这个问题,我无法弄清楚我做错了什么。当我运行第一个测试时,我收到错误“AttributeError: 'Pizza' object has no attribute 'topping'”。我在第二次测试中遇到了类似的错误。

当我在调试器中运行测试时,我可以看到一个“toppings”对象,但它不明白如何从中获取名称。我是否正确定义了 PizzaFactory 的 _prepare 方法?当您具有多对多关系时,如何从另一个表访问一个表中的名称?

谢谢。

模型.py:

工厂.py:

测试.py

0 投票
1 回答
627 浏览

python - 工厂男孩 django 工厂的 FACTORY_FOR 在哪里?

我在 Django 项目中使用 Factory Boy,我需要在相应的工厂中访问在类中定义的类属性。

我的测试用例大致如下:

正如您可能猜到的那样,我的课程在正确的位置有相应的常量。

并且相应的工厂被定义为它应该是

测试用例失败,FACTORY_FOR说不存在。因此,我认为元类将其隐藏在某个地方。理想情况下,如果我使用工厂,我想尽量减少直接导入模型的需要。

0 投票
4 回答
6949 浏览

python - 使用外键创建多个对象

我需要创建 10 个示例用户 ( User),每个用户必须有 50 个文档 ( Doc)。如何使用 factoryboy 在 tests.py 中执行此操作?

在我的tests.py中:

0 投票
0 回答
330 浏览

python - 动态更改 Django 模型属性

我正在尝试使用factory_boy为 django 应用程序创建具有循环依赖项 factory_boy: 循环依赖项的应用程序的固定装置。

楷模:

工厂:

当使用这些工厂运行我的 factory_boy 脚本时,我遇到了一个ValueError: Cannot assign None: "C.a" does not allow null values错误,这是正常C.anull=False

是否可以加载C、更改C.a设置null=True然后运行我的 factory_boy 脚本?

几点:

  • 我知道那会很丑陋,但似乎我别无选择。不过,它只会在内部用于创建固定装置。
  • 我无法更改我的模型,因为它是一个已经运行的应用程序,这些类是核心的一部分。
0 投票
2 回答
908 浏览

python - 未知的密码散列算法。PASSWORD_HASHERS 设置 - 使用工厂男孩

如果我为测试创建示例用户帐户,则会出现此错误:

未知密码散列算法“password1”。您是否在 PASSWORD_HASHERS 设置中指定了它?

工厂.py:

如何解决?

编辑:

解决方案:

0 投票
4 回答
4965 浏览

python - 如何将起始序列号传递给 Django factory_boy 工厂?

factory_boy 默认1用于序列。如何传递一个数字以用作不同的起始数字?我可以对_setup_next_sequence()方法进行子类化,但是如何给它一个变量来使用?



我正在使用 factory_boy 1.2.0(通过pip install factory_boy
factory_boy 代码:https ://github.com/dnerdy/factory_boy