factory-boy为工厂创建一个SubFactory列表

时间:2016-11-09 12:35:46

标签: django factory factory-boy

我正在使用django 1.6和工厂男孩。

class UserFactory(factory.Factory):
   class Meta:
      model = models.User

   username = factory.Sequence(lambda n: 'user%d' % n)

此处username是模型中的简单CharField。因此,每次我调用UserFactory()时,我都会保存并获取唯一的用户命名对象。

在工厂男孩,我可以使用factory.SubFactory(SomeFactory)

如何在SomeFactory中生成ParentOfSomeFactory的列表?

这样,如果我调用ParentOfSomeFactory(),我将创建SomeFactory列表以及ParentOfSomeFactory数据库

2 个答案:

答案 0 :(得分:3)

使用factory.List

class ParentOfUsers(factory.Factory):
    users = factory.List([
        factory.SubFactory(UserFactory) for _ in range(5)
    ])

答案 1 :(得分:2)

您的代码提供了一个包含https://www.netlify.com/blog/2016/10/18/how-our-build-bots-build-sites/

的列表
import itertools
import factory

# cycle through the same 5 users
users = itertools.cycle(
    (UserFactory() for _ in range(5))
)

class ParentFactory(factory.Factory):
    user = factory.Iterator(users)