Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from mimesis import Generic
- from mimesis.builtins import UkraineSpecProvider
- from mimesis.enums import Gender
- from mimesis_factory import MimesisField
- from mimesis.builtins import UkraineSpecProvider, BrazilSpecProvider, RussiaSpecProvider
- from faker import Faker
- from datetime import date
- from mimesis.enums import Gender
- from mimesis_factory import MimesisField
- from helpers.date_helper import DateHelper
- from transliterate import translit
- import factory.fuzzy
- from data.test_data import gender as patient_gender_data, ua_patronymic
- class Patient:
- """ Party (staff) model """
- def __init__(
- self,
- h24_id="",
- name="",
- midname="",
- lastname="",
- email="",
- password="",
- eh_password="",
- phone_type="",
- phone="",
- gender="",
- birth_date="",
- birth_country="",
- birth_city="",
- secret_word="",
- preferred_way_communication="",
- # emergency_contact=None,
- ):
- self.h24_id = h24_id
- self.name = name
- self.midname = midname
- self.lastname = lastname
- self.email = email
- self.phone_type = phone_type
- self.phone = phone
- self.password = password
- self.eh_password = eh_password
- self.gender = gender
- self.birth_date = birth_date
- self.birth_country = birth_country
- self.birth_city = birth_city
- self.secret_word = secret_word
- self.preferred_way_communication = preferred_way_communication
- # if emergency_contact:
- # self.emergency_contact = EmergencyContact(**education)
- @property
- def user_name(self):
- return self.name + " " + self.lastname
- @property
- def full_name(self):
- return self.lastname + " " + self.name + " " + self.midname
- @property
- def age(self):
- date_h = DateHelper()
- full_age = date_h.calculate_age(self.birth_date)
- if full_age.years < 1:
- return full_age.months
- return full_age.years
- def __repr__(self):
- return f"{self.__class__}: h24_id={self.h24_id}, " \
- f"name={self.name}, midname={self.midname}, lastname={self.lastname}, " \
- f"email={self.email}, phone_type={self.phone_type}, phone={self.phone}, " \
- f"gender={self.gender}, " \
- f"{'birth_date=' + self.birth_date if self.birth_date else ''}, " \
- f"{'age=' + str(self.age) if self.birth_date else ''}, "
- generic = Generic('uk')
- generic.add_provider(UkraineSpecProvider)
- uk = UkraineSpecProvider()
- # начинаем адский эксперимент
- class PatientFactory(factory.Factory):
- class Meta:
- model = Patient
- name = MimesisField('person.name', gender=Gender.FEMALE, locale='uk')
- midname = factory.LazyAttribute(
- lambda instance: uk.patronymic(gender=Gender.FEMALE)
- )
- lastname = MimesisField('person.surname', gender=Gender.FEMALE, locale='uk')
- gender = factory.fuzzy.FuzzyChoice(patient_gender_data)
- @factory.lazy_attribute
- def birth_date(self):
- date_h = DateHelper()
- b_date = fake.date_time_between_dates(
- datetime_start=date(1978, 1, 1),
- datetime_end=date(2010, 1, 1)
- ).date()
- str_date = date_h.date_to_str(b_date)
- return str_date
- email = factory.LazyAttribute(
- lambda instance:
- f'{translit(instance.name, reversed=True).lower()}.'\
- f'{translit(instance.lastname, reversed=True).lower()}@yopmail.com'
- )
- patient1 = PatientBaseFactory()
- patient2 = PatientBaseFactory()
- patient3 = PatientBaseFactory()
- patient4 = PatientBaseFactory()
- print(patient1)
- print(patient2)
- print(patient3)
- print(patient4)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement