0008-api_entreprise-use-v3-in-etablissement-endpoint-7061.patch
passerelle/apps/api_entreprise/models.py | ||
---|---|---|
355 | 355 |
}, |
356 | 356 |
) |
357 | 357 |
def etablissements(self, request, siret, **kwargs): |
358 |
return self.get('v2/etablissements/%s/' % siret, **kwargs) |
|
358 |
raw_data = self.get('v3/insee/sirene/etablissements/diffusibles/%s' % siret, raw=True, **kwargs) |
|
359 |
res = {} |
|
360 |
data = raw_data.get('data') |
|
361 |
naf = data.get('activite_principale', {}).get('code', '') |
|
362 |
libelle_naf = data.get('activite_principale', {}).get('libelle', '') |
|
363 |
data['naf'] = naf |
|
364 |
data['libelle_naf'] = libelle_naf |
|
365 |
data['date_creation_etablissement'] = data['date_creation'] |
|
366 |
localite = data.get('adresse', {}).get('libelle_commune', '') |
|
367 |
code_insee_localite = data.get('adresse', {}).get('code_commune', '') |
|
368 |
data['adresse']['localite'] = localite |
|
369 |
data['adresse']['code_insee_localite'] = code_insee_localite |
|
370 |
data['commune_implantation'] = {'code': code_insee_localite, 'value': localite} |
|
371 |
data['tranche_effectif_salarie_etablissement'] = data.get('tranche_effectif_salarie', {}) |
|
372 |
for i in range(1, 8): |
|
373 |
data['adresse']['l%s' % i] = data['adresse'].get('acheminement_postal', {}).get('l%s' % i) |
|
374 |
res['etablissement'] = data |
|
375 |
return {'data': res} |
|
359 | 376 | |
360 | 377 |
@endpoint( |
361 | 378 |
perm='can_access', |
tests/test_api_entreprise.py | ||
---|---|---|
25 | 25 |
from tests.utils import FakedResponse, make_resource |
26 | 26 | |
27 | 27 |
ETABLISSEMENTS_RESPONSE = { |
28 |
"etablissement": {
|
|
28 |
"data": {
|
|
29 | 29 |
"siege_social": True, |
30 | 30 |
"siret": "41816609600051", |
31 |
"naf": "6202A", |
|
32 |
"libelle_naf": "Conseil en systèmes et logiciels informatiques", |
|
33 | 31 |
"date_mise_a_jour": 1449183600, |
34 |
"tranche_effectif_salarie_etablissement": {
|
|
32 |
"tranche_effectif_salarie": { |
|
35 | 33 |
"de": 200, |
36 | 34 |
"a": 249, |
37 | 35 |
"code": "31", |
38 | 36 |
"date_reference": "2014", |
39 | 37 |
"intitule": "200 à 249 salariés", |
40 | 38 |
}, |
41 |
"date_creation_etablissement": 1108594800,
|
|
39 |
"date_creation": 1108594800, |
|
42 | 40 |
"region_implantation": {"code": "11", "value": "Île-de-France"}, |
43 |
"commune_implantation": {"code": "75108", "value": "PARIS 8"}, |
|
44 | 41 |
"adresse": { |
45 |
"l1": "OCTO TECHNOLOGY", |
|
46 |
"l2": None, |
|
47 |
"l3": None, |
|
48 |
"l4": "50 AVENUE DES CHAMPS ELYSEES", |
|
49 |
"l5": None, |
|
50 |
"l6": "75008 PARIS", |
|
51 |
"l7": "FRANCE", |
|
42 |
"acheminement_postal": { |
|
43 |
"l1": "OCTO TECHNOLOGY", |
|
44 |
"l2": None, |
|
45 |
"l3": None, |
|
46 |
"l4": "50 AVENUE DES CHAMPS ELYSEES", |
|
47 |
"l5": None, |
|
48 |
"l6": "75008 PARIS", |
|
49 |
"l7": "FRANCE", |
|
50 |
}, |
|
52 | 51 |
"numero_voie": "50", |
53 | 52 |
"type_voie": "AV", |
54 | 53 |
"nom_voie": "DES CHAMPS ELYSEES", |
55 | 54 |
"code_postal": "75008", |
56 |
"localite": "PARIS 8",
|
|
57 |
"code_insee_localite": "75108",
|
|
55 |
"libelle_commune": "PARIS 8",
|
|
56 |
"code_commune": "75108",
|
|
58 | 57 |
}, |
59 | 58 |
"etat_administratif": {"value": "F", "date_fermeture": 1315173600}, |
59 |
"activite_principale": { |
|
60 |
"code": "6202A", |
|
61 |
"libelle": "Conseil en systèmes et logiciels informatiques", |
|
62 |
}, |
|
60 | 63 |
}, |
61 | 64 |
"gateway_error": False, |
62 | 65 |
} |
... | ... | |
412 | 415 |
def test_etablissements_endpoint(app, resource): |
413 | 416 |
with responses.RequestsMock() as rsps: |
414 | 417 |
rsps.get( |
415 |
'https://entreprise.api.gouv.fr/v2/etablissements/44317013900036/', json=ETABLISSEMENTS_RESPONSE |
|
418 |
'https://entreprise.api.gouv.fr/v3/insee/sirene/etablissements/diffusibles/44317013900036', |
|
419 |
json=ETABLISSEMENTS_RESPONSE, |
|
416 | 420 |
) |
417 | 421 |
response = app.get('/api-entreprise/test/etablissements/44317013900036/', params=REQUEST_PARAMS) |
418 | 422 |
assert 'data' in response.json |
419 |
- |