Projet

Général

Profil

0001-api_entreprise-add-exercices-endpoint-41416.patch

Emmanuel Cazenave, 07 avril 2020 13:29

Télécharger (4,37 ko)

Voir les différences:

Subject: [PATCH] api_entreprise: add 'exercices' endpoint (#41416)

 passerelle/apps/api_entreprise/models.py | 14 ++++++++
 tests/test_api_entreprise.py             | 41 +++++++++++++++++++++++-
 2 files changed, 54 insertions(+), 1 deletion(-)
passerelle/apps/api_entreprise/models.py
306 306
    def etablissements(self, request, siret, **kwargs):
307 307
        return self.get('etablissements/%s/' % siret, **kwargs)
308 308

  
309
    @endpoint(perm='can_access',
310
              methods=['get'],
311
              pattern=r'(?P<siret>\w+)/$',
312
              example_pattern='{siret}/',
313
              description_get=_('Get firms\'s financial year informations'),
314
              parameters={
315
                  'siret': SIRET_PARAM,
316
                  'object': OBJECT_PARAM,
317
                  'context': CONTEXT_PARAM,
318
                  'recipient': RECIPIENT_PARAM,
319
              })
320
    def exercices(self, request, siret, **kwargs):
321
        return self.get('exercices/%s/' % siret, **kwargs)
322

  
309 323
    @endpoint(perm='can_access',
310 324
              pattern=r'(?P<siren>\w+)/$',
311 325
              example_pattern='{siren}/',
tests/test_api_entreprise.py
245 245
}
246 246

  
247 247

  
248
EXERCICES_RESPONSE = {
249
    "exercices": [
250
        {
251
            "ca": "648374448",
252
            "date_fin_exercice": "2016-12-31T00:00:00+01:00",
253
            "date_fin_exercice_timestamp": 1483138800
254
        },
255
        {
256
            "ca": "491463386",
257
            "date_fin_exercice": "2015-12-31T00:00:00+01:00",
258
            "date_fin_exercice_timestamp": 1451516400
259
        },
260
        {
261
            "ca": "473899061",
262
            "date_fin_exercice": "2014-12-31T00:00:00+01:00",
263
            "date_fin_exercice_timestamp": 1419980400
264
        }
265
    ]
266
}
267

  
268

  
248 269
DOCUMENT_ASSOCIATION_RESPONSE = "binary content"
249 270

  
250 271
REQUEST_PARAMS = {'context': 'MSP', 'object': 'demand', 'recipient': 'siret'}
......
301 322
    return response(200, ETABLISSEMENT_EFFECTIFS_MENSUELS_ACOSS_COVID, request=request)
302 323

  
303 324

  
325
@urlmatch(netloc='^entreprise.api.gouv.fr$',
326
          path='^/v2/exercices')
327
def api_entreprise_exercices(url, request):
328
    return response(200, EXERCICES_RESPONSE, request=request)
329

  
330

  
304 331
@urlmatch(netloc='^entreprise.api.gouv.fr$')
305 332
def api_entreprise_error_500(url, request):
306 333
    return response(500, 'bad error happened', request=request)
......
328 355
            api_entreprise_etablissements, api_entreprise_entreprises, api_entreprise_associations,
329 356
            api_entreprise_extraits_rcs, api_entreprise_associations, api_entreprise_documents_associations,
330 357
            api_entreprise_document_association, effectifs_annuels_acoss_covid,
331
            entreprise_effectifs_mensuels_acoss_covid, etablisssment_effectifs_mensuels_acoss_covid):
358
            entreprise_effectifs_mensuels_acoss_covid, etablisssment_effectifs_mensuels_acoss_covid,
359
            api_entreprise_exercices):
332 360
        yield None
333 361

  
334 362

  
......
510 538
    assert data['effectifs_mensuels'] == 100.5
511 539

  
512 540

  
541
def test_exercices(app, resource, mock_api_entreprise, freezer):
542
    response = app.get('/api-entreprise/test/exercices/418166096/', params=REQUEST_PARAMS)
543
    data = response.json['data']
544
    assert len(data['exercices']) == 3
545
    exercice = data['exercices'][0]
546
    assert exercice['ca'] == '648374448'
547
    assert exercice['date_fin_exercice'] == '2016-12-31T00:00:00+01:00'
548
    assert exercice['date_fin_exercice_timestamp'] == 1483138800
549
    assert exercice['date_fin_exercice_datetime'] == '2016-12-30T23:00:00Z'
550

  
551

  
513 552
def test_error_500(app, resource, mock_api_entreprise):
514 553
    with HTTMock(api_entreprise_error_500):
515 554
        response = app.get('/api-entreprise/test/entreprises/443170139/',
516
-