From c9113bdc6ec14c45236314a0006e88698749fe8c Mon Sep 17 00:00:00 2001 From: Dmitriy Shesterkin Date: Fri, 7 Jul 2017 00:34:04 +0300 Subject: [PATCH] factories --- .gitignore | 2 +- src/commons/utils.py | 2 +- src/factories/models.py | 20 ++++++++++++-------- src/factories/providers.py | 27 +++++++++++++++++++++++++++ src/myauth/admin.py | 2 ++ 5 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 src/factories/providers.py diff --git a/.gitignore b/.gitignore index c539f1a..1e6113b 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,7 @@ conf/env !form.html /static/vendor /data/ - +/.vscode/ /deploy/stage.py ######################All system################################################ diff --git a/src/commons/utils.py b/src/commons/utils.py index 20beb1c..35eaef2 100644 --- a/src/commons/utils.py +++ b/src/commons/utils.py @@ -24,7 +24,7 @@ def only_numerics(value): """ Убирает из переданной строки все не цифровые символы. """ - return u''.join(c for c in value if c.isdigit()) + return ''.join(c for c in value if c.isdigit()) def get_site_url(request=None): diff --git a/src/factories/models.py b/src/factories/models.py index ba24837..db64844 100755 --- a/src/factories/models.py +++ b/src/factories/models.py @@ -3,14 +3,18 @@ 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 -from functools import partial USER_PASSWORD = 'test' +factory.Faker.add_provider(CustomDataProvider) + Faker = partial(factory.Faker, locale='ru_RU') @@ -19,9 +23,9 @@ class ProfileFactory(factory.django.DjangoModelFactory): boss_surname = Faker('last_name') boss_name = Faker('first_name') boss_midname = Faker('middle_name') - inn = factory.Faker('isbn10') - ogrn = factory.Faker('isbn10') - okpo = factory.Faker('isbn10') + inn = str(factory.Faker('inn')) + ogrn = str(factory.Faker('isbn10')) + okpo = str(factory.Faker('isbn10')) glavbuh_surname = Faker('last_name') glavbuh_name = Faker('first_name') glavbuh_midname = Faker('middle_name') @@ -78,7 +82,7 @@ class ConfirmEmailFactory(factory.django.DjangoModelFactory): class LicenseFactory(factory.django.DjangoModelFactory): company = factory.SubFactory(ProfileFactory) - term = factory.Iterator([1, 6, 12, 24]) + term = factory.fuzzy.FuzzyChoice([1, 6, 12, 24]) date_from = Faker( 'past_datetime', start_date='-30d', @@ -89,8 +93,8 @@ class LicenseFactory(factory.django.DjangoModelFactory): end_date='+30d', tzinfo=pytz.UTC ) - payform = factory.Iterator([0, 1]) - status = factory.Iterator([1, 2]) + payform = factory.fuzzy.FuzzyChoice([0, 1]) + status = factory.fuzzy.FuzzyChoice([1, 2]) order_date = Faker( 'past_datetime', start_date='-30d', @@ -101,7 +105,7 @@ class LicenseFactory(factory.django.DjangoModelFactory): start_date='-30d', tzinfo=pytz.UTC ) - pay_sum = factory.Iterator([100, 200, 1000, 2000]) + pay_sum = factory.fuzzy.FuzzyChoice([100, 200, 1000, 2000]) deleted = False class Meta: diff --git a/src/factories/providers.py b/src/factories/providers.py new file mode 100644 index 0000000..f128fcf --- /dev/null +++ b/src/factories/providers.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +from random import randint + +from faker.providers import BaseProvider + + +def random_digits(n): + range_start = 10**(n - 1) + range_end = (10**n) - 1 + return randint(range_start, range_end) + + +class CustomDataProvider(BaseProvider): + def inn(self): + return random_digits(12) + + def kpp(self): + return random_digits(9) + + def checking_account(self): + return random_digits(25) + + def bik(self): + return random_digits(9) + + def corr_acc(self): + return random_digits(20) diff --git a/src/myauth/admin.py b/src/myauth/admin.py index f79cb69..44ed999 100644 --- a/src/myauth/admin.py +++ b/src/myauth/admin.py @@ -2,6 +2,7 @@ from django.contrib import admin from django.contrib.auth.admin import UserAdmin from django.utils.translation import ugettext_lazy as _ +from django.contrib.auth.models import Group from customer.utils import check_confirm_bonus_to_user from myauth.models import DokUser, ConfirmEmail @@ -54,3 +55,4 @@ class CustomUserAdmin(UserAdmin): admin.site.register(DokUser, CustomUserAdmin) admin.site.register(ConfirmEmail) +admin.site.unregister(Group)