Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import factory
- from faker import Faker
- from phonenumber_field.modelfields import PhoneNumberField
- from routing.tests.factories import IterCountryFactory, FAKER_LOCALE
- from sender.models import List, Contact, Sender, Message, MESSAGE_MAX_LENGTH, \
- SendBatch
- from users.tests.factories import AdminUserFactory
- class ContactListFactory(factory.django.DjangoModelFactory):
- class Meta:
- model = List
- django_get_or_create = ('name', 'created_by')
- name = name_faker(Meta.model)
- created_by = factory.SubFactory(AdminUserFactory)
- class ContactFactory(factory.django.DjangoModelFactory):
- class Meta:
- model = Contact
- django_get_or_create = ('list', 'phone')
- list = factory.SubFactory(ContactListFactory)
- created_by = factory.SubFactory(AdminUserFactory)
- country = factory.SubFactory(IterCountryFactory)
- enabled = True
- @factory.lazy_attribute
- def phone(self):
- locale = FAKER_LOCALE.get(self.country.code)
- if self.country.code in ('RU', 'IL'):
- fake = Faker(locale, ['common.faker_providers.phone_number'])
- else:
- fake = Faker(locale)
- phone_number = fake.phone_number()
- return PhoneNumberField().get_prep_value(phone_number)
- class SenderFactory(factory.django.DjangoModelFactory):
- class Meta:
- model = Sender
- django_get_or_create = ('name', 'created_by')
- name = name_faker(Meta.model)
- created_by = factory.SubFactory(AdminUserFactory)
- class MessageFactory(factory.django.DjangoModelFactory):
- class Meta:
- model = Message
- django_get_or_create = ('name', 'created_by')
- name = name_faker(Meta.model)
- contents = factory.Faker('text', max_nb_chars=MESSAGE_MAX_LENGTH)
- sender = factory.SubFactory(SenderFactory)
- created_by = factory.SubFactory(AdminUserFactory)
- class SendBatchFactory(factory.django.DjangoModelFactory):
- class Meta:
- model = SendBatch
- list = factory.SubFactory(ContactListFactory)
- message = factory.SubFactory(MessageFactory)
- created_by = factory.SubFactory(AdminUserFactory)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement