# coding=utf-8
import factory
import faker
from django.contrib.auth import get_user_model
from django.utils import timezone
from . import models
fake = faker.Faker()
[docs]class UserFactory(factory.DjangoModelFactory):
first_name = factory.Faker('first_name')
last_name = factory.Faker('last_name')
email = factory.Faker('email')
username = factory.Sequence(lambda n: fake.user_name() + str(n)) # pragma: no cover
is_staff = False
is_active = True
class Meta:
model = get_user_model()
[docs]class OptOutTagFactory(factory.DjangoModelFactory):
name = factory.Faker('domain_word')
class Meta:
model = models.OptOutTag
[docs]class OptOutFactory(factory.DjangoModelFactory):
email = factory.Faker('email')
ts = factory.LazyFunction(timezone.now)
class Meta:
model = models.OptOut
[docs]class OptOutTagValueFactory(factory.DjangoModelFactory):
opt_out = factory.SubFactory(OptOutTagFactory)
tag = factory.SubFactory(OptOutTagFactory)
class Meta:
model = models.OptOutTagValue
[docs]class OptOutFeedbackFactory(factory.DjangoModelFactory):
text = factory.Faker('sentence')
class Meta:
model = models.OptOutFeedback
@factory.post_generation
def tags(self, create, extracted, **kwargs):
if not create: # pragma: no cover
# Simple build, do nothing.
return
if extracted:
# A list of groups were passed in, use them
self.tags.add(*extracted)
[docs]class OptOutFeedbackTranslationFactory(factory.DjangoModelFactory):
feedback = factory.SubFactory(OptOutFeedbackFactory)
language = 'pl'
text = factory.Faker('sentence')
class Meta:
model = models.OptOutFeedbackTranslation