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

Sai*_*zad 4 django factory factory-boy

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

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

   username = factory.Sequence(lambda n: 'user%d' % n)
Run Code Online (Sandbox Code Playgroud)

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

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

我如何生成SomeFactoryin的列表ParentOfSomeFactory

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

小智 6

使用factory.List

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


Rya*_*rom 5

您可以使用factory.Iterator提供一个列表

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)
Run Code Online (Sandbox Code Playgroud)