Projet

Général

Profil

0008-api_entreprise-use-v3-in-etablissement-endpoint-7061.patch

Emmanuel Cazenave, 14 décembre 2022 14:41

Télécharger (4,61 ko)

Voir les différences:

Subject: [PATCH 8/8] api_entreprise: use v3 in etablissement endpoint (#70610)

 passerelle/apps/api_entreprise/models.py | 18 ++++++++++++-
 tests/test_api_entreprise.py             | 34 +++++++++++++-----------
 2 files changed, 36 insertions(+), 16 deletions(-)
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
        for i in range(1, 8):
372
            data['adresse']['l%s' % i] = data['adresse'].get('acheminement_postal', {}).get('l%s' % i)
373
        res['etablissement'] = data
374
        return {'data': res}
359 375

  
360 376
    @endpoint(
361 377
        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 32
        "tranche_effectif_salarie_etablissement": {
35 33
            "de": 200,
......
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
-