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
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
|
|
|