106 lines
4.0 KiB
Python
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"
|