cartads_cs: return more infos in listing endpoint (#36562)

This commit is contained in:
Frédéric Péters 2019-09-30 17:46:58 +02:00
parent 3eb45f4e5f
commit 9aadae45f4
2 changed files with 24 additions and 3 deletions

View File

@ -343,6 +343,12 @@ class AbstractCartaDSCS(BaseResource):
return info['id']
return None
def get_commune_label(self, commune_id):
for info in self.communes(request=None)['data']:
if info['id'] == commune_id:
return info['text']
return None
@endpoint(description=_('Get list of file types'),
parameters={
'commune_id': COMMUNE_ID_PARAM,
@ -1002,6 +1008,10 @@ class AbstractCartaDSCS(BaseResource):
{'id': str(x.id),
'text': x.cartads_numero_dossier,
'tracking_code': x.tracking_code,
'status': self.get_file_status(x),
'commune_label': self.get_commune_label(x.commune_id),
'formdata_url': x.formdata_url,
'cartads_infos': x.cartads_cache_infos,
} for x in files]
}

View File

@ -298,11 +298,11 @@ def test_send(connector, app, cached_data):
CartaDSFile.objects.all().delete()
Job.objects.all().delete()
test_pieces_management(connector, app, cached_data)
resp = app.get('/cartads-cs/test/send?commune_id=1&type_dossier_id=CU&objet_demande_id=1&tracking_code=BBBBBBBB&email=test@invalid')
resp = app.get('/cartads-cs/test/send?commune_id=2&type_dossier_id=CU&objet_demande_id=1&tracking_code=BBBBBBBB&email=test@invalid')
CartaDSDossier.objects.all().delete()
Job.objects.all().delete()
resp = app.get('/cartads-cs/test/send?commune_id=1&type_dossier_id=CU'
resp = app.get('/cartads-cs/test/send?commune_id=2&type_dossier_id=CU'
'&objet_demande_id=1&tracking_code=BBBBBBBB&email=test@invalid&name_id=1234')
assert CartaDSDossier.objects.all().count() == 1
dossier = CartaDSDossier.objects.all().first()
@ -342,7 +342,7 @@ def test_send_notification_error(connector, app, cached_data):
CartaDSFile.objects.all().delete()
Job.objects.all().delete()
test_pieces_management(connector, app, cached_data)
resp = app.get('/cartads-cs/test/send?commune_id=1&type_dossier_id=CU&objet_demande_id=1&tracking_code=BBBBBBBB&email=test@invalid')
resp = app.get('/cartads-cs/test/send?commune_id=2&type_dossier_id=CU&objet_demande_id=1&tracking_code=BBBBBBBB&email=test@invalid')
assert CartaDSDossier.objects.all().count() == 1
dossier = CartaDSDossier.objects.all().first()
assert resp.json['dossier_id'] == dossier.id
@ -562,6 +562,9 @@ def test_list_of_files(connector, app, cached_data):
# all for user
resp = app.get('/cartads-cs/test/files?name_id=1234')
assert len(resp.json['data']) == 1
assert resp.json['data'][0]['status']['status_label'] == 'En cours de saisie'
assert resp.json['data'][0]['commune_label'] == 'AIGREFEUILLE SUR MAINE'
assert not resp.json['data'][0]['cartads_infos'] # not in cache
# invalid user
resp = app.get('/cartads-cs/test/files?name_id=5678')
assert len(resp.json['data']) == 0
@ -572,6 +575,14 @@ def test_list_of_files(connector, app, cached_data):
resp = app.get('/cartads-cs/test/files?name_id=1234&status=Attente DOC')
assert len(resp.json['data']) == 0
# hourly job to cache additional data
with mock.patch('passerelle.apps.cartads_cs.models.CartaDSCS.soap_client') as client:
client.return_value = mock.Mock(service=FakeService())
connector.hourly()
resp = app.get('/cartads-cs/test/files?name_id=1234')
assert len(resp.json['data']) == 1
assert resp.json['data'][0]['cartads_infos']
def test_join(connector, app, cached_data):
CartaDSDossier.objects.all().delete()