14

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

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

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

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

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

我如何生成SomeFactoryin列表ParentOfSomeFactory

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

4

2 回答 2

24

使用factory.List

class ParentOfUsers(factory.Factory):
    users = factory.List([
        factory.SubFactory(UserFactory) for _ in range(5)
    ])
于 2018-03-15T12:06:39.593 回答
4

您可以提供带有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)
于 2017-08-06T19:07:54.503 回答