55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
import datetime
|
|
|
|
import pytest
|
|
|
|
import random
|
|
|
|
import faker
|
|
|
|
from django.core.management import call_command
|
|
|
|
from zoo.zoo_meta.models import EntitySchema
|
|
from zoo.zoo_data.models import Entity, Transaction
|
|
from zoo.zoo_nanterre.utils import age_in_years_and_months
|
|
|
|
|
|
@pytest.fixture
|
|
def rsu(db):
|
|
call_command('loaddata', 'rsu')
|
|
schema = EntitySchema.objects.get(slug='individu')
|
|
assert schema
|
|
|
|
# populate individus
|
|
fake = faker.Factory.create('fr_FR')
|
|
|
|
sexes = ['femme', 'homme', 'autre']
|
|
|
|
tr = Transaction.objects.create(meta="initial import")
|
|
entities = []
|
|
for i in range(1000):
|
|
individu = {}
|
|
individu['genre'] = genre = sexes[random.randint(0, 2)]
|
|
individu['email'] = fake.email()
|
|
if genre == 'femme':
|
|
individu['prenoms'] = fake.first_name_female()
|
|
individu['nom_de_naissance'] = fake.last_name_female()
|
|
if random.randint(0, 10) == 0:
|
|
individu['nom_d_usage'] = fake.last_name_male()
|
|
else:
|
|
individu['prenoms'] = fake.first_name_male()
|
|
individu['nom_de_naissance'] = fake.last_name_male()
|
|
date_de_naissance = fake.date_time_between_dates(
|
|
datetime_start=datetime.datetime(1930, 1, 1),
|
|
datetime_end=datetime.datetime.now() + datetime.timedelta(days=120),
|
|
tzinfo=None).date()
|
|
individu['date_de_naissance'] = date_de_naissance.isoformat()
|
|
individu['statut_legal'] = ('majeur' if age_in_years_and_months(date_de_naissance) >= (18,
|
|
0)
|
|
else 'mineur')
|
|
individu['email'] = fake.email()
|
|
entities.append(
|
|
Entity(created=tr, schema=schema, content=individu))
|
|
|
|
Entity.objects.bulk_create(entities)
|
|
return entities
|