You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

128 lines
3.3 KiB

import pytz
import factory
import factory.fuzzy
from functools import partial
from django.contrib.auth import get_user_model
from factories.providers import CustomDataProvider
from myauth.models import ConfirmEmail
from customer.models import UserProfile, License, BankAccount
USER_PASSWORD = 'test'
factory.Faker.add_provider(CustomDataProvider)
Faker = partial(factory.Faker, locale='ru_RU')
class ProfileFactory(factory.django.DjangoModelFactory):
profile_type = factory.Iterator([1, 2])
boss_surname = Faker('last_name')
boss_name = Faker('first_name')
boss_midname = Faker('middle_name')
inn = factory.Faker('inn')
ogrn = factory.Faker('ogrn')
okpo = factory.Faker('okpo')
glavbuh_surname = Faker('last_name')
glavbuh_name = Faker('first_name')
glavbuh_midname = Faker('middle_name')
address = Faker('address')
jur_address = Faker('address')
real_address = Faker('address')
phone = Faker('phone_number')
fax = Faker('phone_number')
email = Faker('email')
site = Faker('url')
svid_gos_reg = factory.Faker('isbn10')
ip_reg_date = factory.Faker('date')
name = Faker('company')
full_name = Faker('company')
kpp = factory.Faker('kpp')
boss_title = Faker('job')
na_osnovanii = factory.fuzzy.FuzzyChoice(['устава', 'положения'])
active = True
confirmed = True
user_session_key = Faker('sha1')
class Meta:
model = UserProfile
class UserFactory(factory.django.DjangoModelFactory):
first_name = Faker('first_name')
last_name = Faker('last_name')
username = Faker('user_name')
email = Faker('email')
password = factory.PostGenerationMethodCall('set_password', USER_PASSWORD)
is_active = True
is_staff = False
date_joined = Faker(
'past_datetime',
start_date='-30d',
tzinfo=pytz.UTC
)
profile = factory.SubFactory(ProfileFactory)
class Meta:
model = get_user_model()
django_get_or_create = ('username',)
class ConfirmEmailFactory(factory.django.DjangoModelFactory):
user = factory.SubFactory(UserFactory)
is_confirmed = True
class Meta:
model = ConfirmEmail
class LicenseFactory(factory.django.DjangoModelFactory):
company = factory.SubFactory(ProfileFactory)
term = factory.fuzzy.FuzzyChoice([1, 6, 12, 24])
date_from = Faker(
'past_datetime',
start_date='-30d',
tzinfo=pytz.UTC
)
date_to = Faker(
'future_datetime',
end_date='+30d',
tzinfo=pytz.UTC
)
payform = factory.fuzzy.FuzzyChoice([0, 1])
status = factory.fuzzy.FuzzyChoice([1, 2])
order_date = Faker(
'past_datetime',
start_date='-30d',
tzinfo=pytz.UTC
)
paid_date = Faker(
'past_datetime',
start_date='-30d',
tzinfo=pytz.UTC
)
pay_sum = factory.fuzzy.FuzzyChoice([100, 200, 1000, 2000])
deleted = False
class Meta:
model = License
class BankAccountFactory(factory.django.DjangoModelFactory):
company = factory.SubFactory(ProfileFactory)
bik = factory.Faker('bik')
name = Faker('company')
short_name = Faker('company')
korr_account = factory.Faker('corr_acc')
account = factory.Faker('corr_acc')
is_main = True
class Meta:
model = BankAccount