Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
otros:factoryboy [2014/05/22 08:39] alfred [Factories] |
otros:factoryboy [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 77: | Línea 77: | ||
| # Build a not saved user overriding its first_name | # Build a not saved user overriding its first_name | ||
| user = UserFactory.build(first_name='Joe') | user = UserFactory.build(first_name='Joe') | ||
| + | # Build ten not saved users named Joe | ||
| + | users = USerFactory.build(10, first_name="Joe") | ||
| + | </code> | ||
| + | |||
| + | === Derived values === | ||
| + | We can create a field which is derived from others (this example will put ''joe.blow@example.com'' in email field): | ||
| + | <code python> | ||
| + | class UserFactory(factory.Factory): | ||
| + | FACTORY_FOR = models.User | ||
| + | first_name = 'Joe' | ||
| + | last_name = 'Blow' | ||
| + | email = factory.LazyAttribute(lambda a: '{0}.{1}@example.com'.format(a.first_name, a.last_name).lower()) | ||
| + | </code> | ||
| + | |||
| + | === Unique values in sequence === | ||
| + | We can create a field which is auto-incremented as: | ||
| + | <code python> | ||
| + | class UserFactory(factory.Factory): | ||
| + | FACTORY_FOR = models.User | ||
| + | email = factory.Sequence(lambda n: 'person{0}@example.com'.format(n)) | ||
| + | </code> | ||
| + | |||
| + | === Associate factories === | ||
| + | We can associate a field with other factory to create other sub instance: | ||
| + | <code python> | ||
| + | class PostFactory(factory.Factory): | ||
| + | FACTORY_FOR = models.Post | ||
| + | author = factory.SubFactory(UserFactory) | ||
| </code> | </code> | ||