zoo/tests/test_nanterre_views.py

106 lines
4.0 KiB
Python

# -*- coding: utf-8 -*-
from zoo.zoo_data.models import Entity, Transaction, Relation
from zoo.zoo_nanterre import utils
from django.db.transaction import atomic
def test_rsu_demo_view(app, nanterre_classic_family):
resp = app.get('/rsu/demo/', status=200)
assert resp.html.find_all('h1')[1].text == u'Démo pour le RSU'
assert resp.html.find('a', {'href': 'search/'}).text == 'Recherche'
def test_rsu_demo_search_view_limit(app, rsu):
resp = app.get('/rsu/demo/search/', status=200)
assert u'Aucune fiche trouvée' in resp.text
# largest
resp = app.get('/rsu/demo/search/', {'query': 'Léon', 'limit': 0.1}, status=200)
nb_res_1 = len(resp.html.find_all('div', {'class': 'individu'}))
# finer
resp = app.get('/rsu/demo/search/', {'query': 'Léon', 'limit': 0.2}, status=200)
nb_res_2 = len(resp.html.find_all('div', {'class': 'individu'}))
assert nb_res_1 > nb_res_2 > 0
def test_rsu_demo_search_view(app, nanterre_classic_family):
url = '/rsu/demo/search/'
# name
resp = app.get(url, {'query': 'Lou', 'limit': 0.1}, status=200)
assert len(resp.html.find_all('div', {'class': 'individu'})) == 1
# email
resp = app.get(url, {'query': 'marie.darmette@example.com', 'limit': 0.9}, status=200)
assert len(resp.html.find_all('div', {'class': 'individu'})) == 2
# id
resp = app.get(url, {'query': '#1', 'limit': 0.9}, status=200)
# birthdate
resp = app.get(url, {'query': '01/01/2008', 'limit': 0.9}, status=200)
assert len(resp.html.find_all('div', {'class': 'individu'})) == 1
resp = app.get(url, {'query': '01/01/08', 'limit': 0.9}, status=200)
assert len(resp.html.find_all('div', {'class': 'individu'})) == 1
resp = app.get(url, {'query': '01/01/82', 'limit': 0.9}, status=200)
assert len(resp.html.find_all('div', {'class': 'individu'})) == 2
resp = app.get(url, {'query': '01/82', 'limit': 0.9}, status=200)
assert len(resp.html.find_all('div', {'class': 'individu'})) == 2
resp = app.get(url, {'query': '82', 'limit': 0.9}, status=200)
assert len(resp.html.find_all('div', {'class': 'individu'})) == 2
resp = app.get(url, {'query': '08 kev', 'limit': 0.1}, status=200)
assert len(resp.html.find_all('div', {'class': 'individu'})) == 1
def test_rsu_import_control_view(app, nanterre_classic_family):
resp = app.get('/rsu/import_control/', status=200)
assert resp.html.find_all('h1')[1].text == u"Contrôle de l'import"
ints = [
("Nombre d'individus", 4),
("Nombre d'individus majeurs", 2),
("Nombre d'individus mineurs", 2),
(u'Fédérations technocarte', 0),
]
for i, (key, value) in enumerate(ints):
assert resp.html.find_all('dt')[i].text == key
assert int(resp.html.find_all('dd')[i].text) == value
def test_adresse(app, rsu_schema, nanterre_classic_family):
with atomic():
tr = Transaction.get_transaction()
address = Entity.objects.create(
created=tr,
schema=rsu_schema[utils.ADRESSE_ENT],
content={
'at': '',
'streetnumber': '169',
'streetnumberext': '',
'streetname': 'RUE DU CHATEAU',
'ext1': '',
'ext2': '',
'streetmatriculation': '00169',
'zipcode': '75014',
'inseecode': '75014',
'city': 'PARIS',
'country': 'FRANCE',
})
assert utils.adresse(nanterre_classic_family['jean'])
Relation.objects.create(
created=tr,
schema=rsu_schema[utils.HABITE_REL],
content={'principale': False},
left=nanterre_classic_family['jean'],
right=address)
assert not utils.adresse(nanterre_classic_family['jean'])
def test_add_age(app, nanterre_classic_family, freezer):
freezer.move_to('2008-01-02T00:00:00')
resp = app.get('/rsu/demo/search/', {'query': '2008-01-01', 'limit': 0.9}, status=200)
assert len(resp.html.find_all('div', {'class': 'individu'})) == 1
assert resp.html.find('span', {'class': 'individu-age'}).text == "moins d'un mois"