python
import factory
from faker import Faker
fake = Faker()
class UserFactory(factory.Factory):
class Meta:
model = User
name = factory.Faker('name')
email = factory.Faker('email')
address = factory.Faker('address')
1. SubFactories
python
class UserFactory(factory.Factory):
class Meta:
model = User
name = factory.Faker('name')
class OrderFactory(factory.Factory):
class Meta:
model = Order
user = factory.SubFactory(UserFactory)
product = factory.Faker('word')
quantity = factory.Faker('random_int')
2. RelatedFactory
python
class UserFactory(factory.Factory):
class Meta:
model = User
name = factory.Faker('name')
class OrderFactory(factory.Factory):
class Meta:
model = Order
user = factory.RelatedFactory(UserFactory, 'order')
product = factory.Faker('word')
quantity = factory.Faker('random_int')
python
class UserFactory(factory.Factory):
class Meta:
model = User
name = factory.Sequence(lambda n: f'User{n}')
email = factory.Faker('email')
python
class UserFactory(factory.Factory):
class Meta:
model = User
name = factory.Faker('name')
@factory.post_generation
def set_password(self, create, extracted, **kwargs):
if not create:
return
if extracted:
self.password = make_password(extracted)
python
class UserFactory(factory.Factory):
class Meta:
model = User
name = factory.Faker('name')
@factory.lazy_attribute
def isAdmin(self):
return self.name == 'admin'