zoo/tests/conftest.py

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