0001-nanterre-ignore-invalid-dates-during-free-text-searc.patch
tests/test_nanterre.py | ||
---|---|---|
27 | 27 |
assert rsu[0].id == found[0].id |
28 | 28 |
assert found[0].similarity == 1.0 |
29 | 29 | |
30 |
found = list(search.search_query(rsu[0].content['prenoms'] + ' ' + |
|
31 |
rsu[0].content['nom_de_naissance'])) |
|
30 |
found = list(search.search_query(rsu[0].content['prenoms'] + ' ' + rsu[0].content['nom_de_naissance'])) |
|
32 | 31 |
assert rsu[0].id == found[0].id |
33 | 32 |
assert found[0].similarity == 1.0 |
34 | 33 | |
... | ... | |
49 | 48 |
found = list(search.search_identifier('%d' % rsu[0].id)) |
50 | 49 |
assert found[0].id == rsu[0].id |
51 | 50 | |
51 |
# check that a valid date restrain the scope of the search |
|
52 |
found = list(search.search_email(rsu[0].content['email']).search_birthdate('01/01/1919')) |
|
53 |
assert len(found) == 0 |
|
54 | ||
55 |
# check that an invalid date is ignored |
|
56 |
found = list(search.search_email(rsu[0].content['email']).search_birthdate('99/01/1919')) |
|
57 |
assert len(found) == 1 |
|
58 |
found = list(search.search_email(rsu[0].content['email']).search_birthdate('99/1919')) |
|
59 |
assert len(found) == 1 |
|
60 | ||
52 | 61 | |
53 | 62 |
def test_person_search_api(app, db, rsu): |
54 | 63 |
url = reverse('rsu-api-search') |
zoo/zoo_nanterre/utils.py | ||
---|---|---|
300 | 300 |
year += 2000 |
301 | 301 |
birthdate['year'] = str(year) |
302 | 302 |
if birthdate['day']: |
303 |
before = after = datetime.date( |
|
304 |
int(birthdate['year']), int(birthdate['month']), int(birthdate['day'])) |
|
303 |
try: |
|
304 |
before = after = datetime.date( |
|
305 |
int(birthdate['year']), |
|
306 |
int(birthdate['month']), |
|
307 |
int(birthdate['day'])) |
|
308 |
except ValueError: |
|
309 |
return self |
|
305 | 310 |
elif birthdate['month']: |
306 |
after = datetime.date(int(birthdate['year']), int(birthdate['month']), 1) |
|
307 |
before = ((after + datetime.timedelta(days=31)).replace(day=1) |
|
308 |
- datetime.timedelta(days=1)) |
|
311 |
try: |
|
312 |
after = datetime.date(int(birthdate['year']), int(birthdate['month']), 1) |
|
313 |
before = ((after + datetime.timedelta(days=31)).replace(day=1) |
|
314 |
- datetime.timedelta(days=1)) |
|
315 |
except ValueError: |
|
316 |
return self |
|
309 | 317 |
else: |
310 |
after = datetime.date(int(birthdate['year']), 1, 1) |
|
311 |
before = datetime.date(int(birthdate['year']), 12, 31) |
|
318 |
try: |
|
319 |
after = datetime.date(int(birthdate['year']), 1, 1) |
|
320 |
before = datetime.date(int(birthdate['year']), 12, 31) |
|
321 |
except ValueError: |
|
322 |
return self |
|
312 | 323 | |
313 | 324 |
first_january_same_year = None |
314 | 325 |
if before == after and window_days is not None: |
315 |
- |