问题标签 [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 回答
4843 浏览

django - 如何为具有相同外键的 Django 模型创建工厂男孩工厂

当两个或多个模型有一个共同的外键时,我的工厂总是会遇到问题,并且每个模型都应该有相同的外键时创建自己的对象。

为了说明这个问题,这里有一个简化的模型结构:

因此 aRecording具有AudioSubtitles,并且两者都有 aLanguage对于每种语言代码都是唯一的。

这是这种结构的工厂。

音频和字幕使用相同的语言是很常见的情况,因为通常它只是一个转录本。所以我想要一个默认的 RecordingFactory 将音频和字幕语言为“en1”作为代码,如上面的工厂所示。

但是由于每个工厂都尝试创建自己的语言实例,因此使用recording = RecordingFactory()(我经常这样做)实例化 RecordingFactory 会引发异常:

为了解决它,我可以这样做:

但这很冗长。在我的实际项目中,我有更多的联系,所以有时我需要在三到四个地方指定语言,有时是四级深度。相反,我希望能够指定一个默认值,如果它已经存在,则创建或使用它。

解决这个问题的正确方法是什么,如果存在的话?

0 投票
1 回答
538 浏览

django - 如何使用 factory.SelfAttribute 和 factory.Sequence?

我有这样的模型:

现在我正在尝试建立一个工厂:

问题是,这不起作用,在测试时我得到:

那么如何将 SelfAttribute 与 Sequence 结合使用呢?我在用:

0 投票
1 回答
2662 浏览

python - 如何在 Django 中使用 Factory Boy 将值传递给依赖模型?

我正在开发一个开源 django 网络应用程序,我正在寻找使用 Factory Boy 来帮助我为一些测试设置模型,但是在阅读文档和查看示例几个小时后,我认为我需要接受失败并在这里问。

我有一个看起来有点像这样的客户模型:

我还使用来自 django.contrib.auth 的标准 Django 用户模型。

这是我的工厂代码:

就我而言,我希望能够产生这样的客户

并使用正确的用户名和电子邮件地址生成相应的用户。

现在,我收到此错误:

我认为这是因为我在客户中依赖一个惰性属性,在创建用户工厂之前不会调用它。

如果我希望能够使用工厂来创建 Customer 模型实例,以及如上所述的相应用户,我应该怎么做?

对于它的价值,完整的模型可以在 github repo 上看到

0 投票
1 回答
484 浏览

python - Django Factory Boy 遍历相关父级

我有一个包含客户端、Draftschedules、LineItems 和服务器的项目。

  • 每个客户都有一个 DraftSchedule,每个 Draftschedule 都有许多 Lineitem

  • 每个客户端有许多服务器

  • 每个 LineItem 都有一个服务器

在此处输入图像描述

我有一些代码可以使用随机数据为每个 DraftSchedule 生成 LineItems。但是,生成的 LineItems 包含不属于 Draftschedule 客户端的服务器

我想将服务器选择集限制为仅由为其创建 Lineitem 的 Draftschedule 的父客户端拥有的那些服务器。

这样当我调用LineItemFactory()它时,它会返回一个新的 LineItem 对象,并且我可以保证 LineItem 上的服务器实际上由与 DraftSchedule 关联的客户端拥有

我尝试了以下方法:

相关名称在哪里client.servers,但函数不可迭代,所以我有点卡住了

这是可能的还是我应该从不同的角度解决问题?

0 投票
1 回答
2783 浏览

django - 如何在带有直通表的工厂男孩中设置动态多对多?

我在使用直通关系与 factory boy 中的一组 django 模型建立多对多关系时遇到问题。我有一堆食谱和配料。通过设置数量的模型,食谱和成分之间存在多对多关系。我为每种型号都有工厂,但无法将它们连接起来。

简化模型.py:

简化工厂.py

我试过弄乱 factory.RelatedFactory 但还没有真正得到任何地方。理想情况下,我只想能够做到以下几点:

这样做虽然不会在任何一方设置多对多关系,而且似乎也无法创建配方配料模型本身。有谁知道这样做的方法?

编辑:

我也试过:

但是我无法理解如何使用预先存在的配方和一组成分来创建这些对象。

0 投票
2 回答
7456 浏览

django - factory-boy 为工厂创建子工厂列表

我正在使用 django 1.6 和 factory-boy。

username是一个简单CharField的模型。所以每次我打电话UserFactory()时,我都会保存并获取唯一的用户命名对象。

在 factory-boy 中我可以使用factory.SubFactory(SomeFactory).

我如何生成SomeFactoryin列表ParentOfSomeFactory

因此,如果我打电话,ParentOfSomeFactory()我将创建 SomeFactory 以及 ParentOfSomeFactory 数据库的列表

0 投票
2 回答
1223 浏览

python - factory-boy 子工厂传递对象而不是密钥

我正在使用带有 SQLAlchemy 的工厂男孩。

我正在尝试创建 Fact 对象,并且我希望工厂男孩生成作为 Fact 外键的 PatientDim 对象。但是 Subfactory 不传递密钥,而是将整个对象传递给外键字段。

我怎样才能只通过子工厂传递 PatientDim 密钥?

工厂.py

模型.py

0 投票
1 回答
1422 浏览

python - 如何在 factory_boy 中创建包含实例列表的字段

我正在使用工厂男孩来测试一些模型(不是 django),我想知道如何显示一个包含另一个工厂多个实例的列表的字段。例如具有类UserGroup

我想在用户工厂中显示一个名为的字段,其中包含该用户所属的所有组。运行工厂时默认显示两组[' group1 ',' group2 ']。

我曾尝试使用如上所示的相关工厂,但我不知道如何为相关字段定义默认值。是否有任何工厂男孩大师可以为这个问题带来一些启示?

0 投票
1 回答
543 浏览

python - 具有一对多和多对多字段的 Factory Boy 模型

我正在使用 pytest 和 Factory Boy 测试我的 SQLAlchemy 模型,但我发现他们的文档缺乏关系。我已经设置了我的架构,所以有些用户可以属于多个组(组可以容纳多个用户)并且他们可以有多个令牌,但一个令牌只属于一个用户:

我一直在尝试不同的东西,包括将组和令牌添加到用户实例的 @factory.post_generation 方法,但是当我将用户放入固定装置并在我的测试函数中使用它时,这些字段永远不会出现。您对如何使用 Factory Boy 对该模式进行建模有什么建议吗?

0 投票
1 回答
1274 浏览

django - FactoryBoy“创造”策略似乎并没有拯救 django 模型

可能是一个愚蠢的问题,但我已经把头撞到墙上有一段时间了。我决定尝试 factory-boy 库来简化我的测试并定义了一个工厂:

但是,当我这样做时,QualtricsSurveyCacheFactory.create()它会返回 id = None 的模型

我可以.save()在创建后建模,但只是好奇为什么它不能自动完成。