Projet

Général

Profil

0001-api_entreprise-use-responses-in-unit-tests-70610.patch

Emmanuel Cazenave, 25 octobre 2022 18:13

Télécharger (23,2 ko)

Voir les différences:

Subject: [PATCH 1/7] api_entreprise: use responses in unit tests (#70610)

 tests/test_api_entreprise.py | 399 +++++++++++++++++------------------
 1 file changed, 197 insertions(+), 202 deletions(-)
tests/test_api_entreprise.py
18 18

  
19 19
import pytest
20 20
import requests
21
import responses
21 22
from django.utils import timezone
22
from httmock import HTTMock, response, urlmatch
23 23

  
24 24
from passerelle.apps.api_entreprise.models import APIEntreprise
25 25
from tests.utils import FakedResponse, make_resource
......
247 247
REQUEST_PARAMS = {'context': 'MSP', 'object': 'demand', 'recipient': 'siret'}
248 248

  
249 249

  
250
@urlmatch(netloc='^entreprise.api.gouv.fr$', path='^/v2/etablissements/')
251
def api_entreprise_etablissements(url, request):
252
    return response(200, ETABLISSEMENTS_RESPONSE, request=request)
253

  
254

  
255
@urlmatch(netloc='^entreprise.api.gouv.fr$', path='^/v2/entreprises/')
256
def api_entreprise_entreprises(url, request):
257
    return response(200, ENTREPRISES_RESPONSE, request=request)
258

  
259

  
260
@urlmatch(netloc='^entreprise.api.gouv.fr$', path='^/v2/associations/')
261
def api_entreprise_associations(url, request):
262
    return response(200, ASSOCIATIONS_RESPONSE, request=request)
263

  
264

  
265
@urlmatch(netloc='^entreprise.api.gouv.fr$', path='^/v2/extraits_rcs_infogreffe/')
266
def api_entreprise_extraits_rcs(url, request):
267
    return response(200, EXTRAITS_RCS_RESPONSE, request=request)
268

  
269

  
270
@urlmatch(netloc='^entreprise.api.gouv.fr$', path='^/v2/documents_associations/')
271
def api_entreprise_documents_associations(url, request):
272
    return response(200, DOCUMENTS_ASSOCIATION_RESPONSE, request=request)
273

  
274

  
275
@urlmatch(netloc='^apientreprise.fr$', path='^/attestations/')
276
def api_entreprise_document_association(url, request):
277
    return response(200, DOCUMENT_ASSOCIATION_RESPONSE, request=request)
278

  
279

  
280
@urlmatch(netloc='^entreprise.api.gouv.fr$', path='^/v2/effectifs_annuels_acoss_covid/')
281
def effectifs_annuels_acoss_covid(url, request):
282
    return response(200, EFFECTIFS_ANNUELS_ACOSS_COVID, request=request)
283

  
284

  
285
@urlmatch(netloc='^entreprise.api.gouv.fr$', path='^/v2/effectifs_mensuels_acoss_covid/.*/entreprise')
286
def entreprise_effectifs_mensuels_acoss_covid(url, request):
287
    return response(200, ENTREPRISE_EFFECTIFS_MENSUELS_ACOSS_COVID, request=request)
288

  
289

  
290
@urlmatch(netloc='^entreprise.api.gouv.fr$', path='^/v2/effectifs_mensuels_acoss_covid/.*/etablissement')
291
def etablisssment_effectifs_mensuels_acoss_covid(url, request):
292
    return response(200, ETABLISSEMENT_EFFECTIFS_MENSUELS_ACOSS_COVID, request=request)
293

  
294

  
295
@urlmatch(netloc='^entreprise.api.gouv.fr$', path='^/v2/exercices')
296
def api_entreprise_exercices(url, request):
297
    return response(200, EXERCICES_RESPONSE, request=request)
298

  
299

  
300
@urlmatch(netloc='^entreprise.api.gouv.fr$')
301
def api_entreprise_error_500(url, request):
302
    return response(500, 'bad error happened', request=request)
303

  
304

  
305
@urlmatch(netloc='^entreprise.api.gouv.fr$')
306
def api_entreprise_connection_error(url, request):
307
    raise requests.RequestException('connection timed-out')
308

  
309

  
310
@urlmatch(netloc='^entreprise.api.gouv.fr$')
311
def api_entreprise_error_not_json(url, request):
312
    return response(200, 'simple text', request=request)
313

  
314

  
315
@urlmatch(netloc='^entreprise.api.gouv.fr$')
316
def api_entreprise_error_not_found(url, request):
317
    return response(404, {'error': 'not_found', 'message': 'Page not found'}, request=request)
318

  
319

  
320
@pytest.yield_fixture
321
def mock_api_entreprise():
322
    with HTTMock(
323
        api_entreprise_etablissements,
324
        api_entreprise_entreprises,
325
        api_entreprise_associations,
326
        api_entreprise_extraits_rcs,
327
        api_entreprise_associations,
328
        api_entreprise_documents_associations,
329
        api_entreprise_document_association,
330
        effectifs_annuels_acoss_covid,
331
        entreprise_effectifs_mensuels_acoss_covid,
332
        etablisssment_effectifs_mensuels_acoss_covid,
333
        api_entreprise_exercices,
334
    ):
335
        yield None
336

  
337

  
338 250
@pytest.fixture
339 251
def resource(db):
340 252
    return make_resource(
......
363 275
    assert mocked_get.call_args[1]['data']['recipient'] == 'Custom recipient'
364 276

  
365 277

  
366
def test_entreprises_endpoint(app, resource, mock_api_entreprise):
367
    response = app.get('/api-entreprise/test/entreprises/443170139/', params=REQUEST_PARAMS)
278
def test_entreprises_endpoint(app, resource):
279
    with responses.RequestsMock() as rsps:
280
        rsps.get('https://entreprise.api.gouv.fr/v2/entreprises/443170139/', json=ENTREPRISES_RESPONSE)
281
        response = app.get('/api-entreprise/test/entreprises/443170139/', params=REQUEST_PARAMS)
368 282
    data = response.json['data']
369 283
    assert data['entreprise']['categorie_entreprise'] == 'PME'
370 284
    assert data['entreprise']['numero_tva_intracommunautaire'] == 'FR16418166096'
......
385 299
    assert data['etablissement_siege']['date_mise_a_jour'] == '2015-12-03'
386 300

  
387 301

  
388
def test_simple_match_mandataire_social(app, resource, mock_api_entreprise):
302
def test_simple_match_mandataire_social(app, resource):
389 303
    params = {
390 304
        'first_name': 'françois',
391 305
        'last_name': 'hIsQuIn',
......
394 308
    }
395 309
    params.update(REQUEST_PARAMS)
396 310

  
397
    url = '/api-entreprise/test/match_mandataire_social/443170139/'
398
    response = app.get(url, params=params)
311
    with responses.RequestsMock() as rsps:
312
        rsps.get('https://entreprise.api.gouv.fr/v2/entreprises/443170139/', json=ENTREPRISES_RESPONSE)
313
        url = '/api-entreprise/test/match_mandataire_social/443170139/'
314
        response = app.get(url, params=params)
399 315

  
400
    # successful matching
401
    data = response.json['data']
402
    assert data['nom'] == 'HISQUIN'
403
    assert data['prenom'] == 'FRANCOIS'
404
    assert data['date_naissance'] == '1965-01-27'
405
    assert data['type'] == 'PP'
316
        # successful matching
317
        data = response.json['data']
318
        assert data['nom'] == 'HISQUIN'
319
        assert data['prenom'] == 'FRANCOIS'
320
        assert data['date_naissance'] == '1965-01-27'
321
        assert data['type'] == 'PP'
406 322

  
407
    params['method'] = 'unkwown'
408
    response = app.get(url, params=params)
323
        params['method'] = 'unkwown'
324
        response = app.get(url, params=params)
409 325

  
410
    # unsupported method
411
    assert response.json['err']
412
    assert 'data' not in response.json
326
        # unsupported method
327
        assert response.json['err']
328
        assert 'data' not in response.json
413 329

  
414
    params['method'] = 'simple'
415
    params.pop('first_name')
416
    response = app.get(url, params=params, status=400)
330
        params['method'] = 'simple'
331
        params.pop('first_name')
332
        response = app.get(url, params=params, status=400)
417 333

  
418
    # missing parameter
419
    assert not response.json['data']
420
    assert 'missing parameter' in response.json['err_desc']
334
        # missing parameter
335
        assert not response.json['data']
336
        assert 'missing parameter' in response.json['err_desc']
421 337

  
422
    params['first_name'] = 'JOHN'
423
    response = app.get(url, params=params)
338
        params['first_name'] = 'JOHN'
339
        response = app.get(url, params=params)
424 340

  
425
    # matching failed
426
    assert not response.json['err']
427
    assert not response.json['data']
341
        # matching failed
342
        assert not response.json['err']
343
        assert not response.json['data']
428 344

  
429 345

  
430
def test_levenshtein_match_mandataire_social(app, resource, mock_api_entreprise):
346
def test_levenshtein_match_mandataire_social(app, resource):
431 347
    params = {
432 348
        'first_name': 'françois',
433 349
        'last_name': 'hIsQuIn',
......
436 352
    }
437 353
    params.update(REQUEST_PARAMS)
438 354

  
439
    url = '/api-entreprise/test/match_mandataire_social/443170139/'
440
    response = app.get(url, params=params)
355
    with responses.RequestsMock() as rsps:
356
        rsps.get('https://entreprise.api.gouv.fr/v2/entreprises/443170139/', json=ENTREPRISES_RESPONSE)
441 357

  
442
    # successful matching
443
    data = response.json['data']
444
    assert data['nom'] == 'HISQUIN'
445
    assert data['prenom'] == 'FRANCOIS'
446
    assert data['date_naissance'] == '1965-01-27'
447
    assert data['type'] == 'PP'
358
        url = '/api-entreprise/test/match_mandataire_social/443170139/'
359
        response = app.get(url, params=params)
448 360

  
449
    params['first_name'] = 'JOHN'
450
    response = app.get(url, params=params)
361
        # successful matching
362
        data = response.json['data']
363
        assert data['nom'] == 'HISQUIN'
364
        assert data['prenom'] == 'FRANCOIS'
365
        assert data['date_naissance'] == '1965-01-27'
366
        assert data['type'] == 'PP'
451 367

  
452
    # matching failed
453
    assert not response.json['err']
454
    assert not response.json['data']
368
        params['first_name'] = 'JOHN'
369
        response = app.get(url, params=params)
455 370

  
456
    params['first_name'] = 'francoi'
457
    params['last_name'] = 'hisquinn'
458
    response = app.get(url, params=params)
371
        # matching failed
372
        assert not response.json['err']
373
        assert not response.json['data']
459 374

  
460
    # successful matching within distance bracket
461
    data = response.json['data']
462
    assert data['nom'] == 'HISQUIN'
463
    assert data['prenom'] == 'FRANCOIS'
464
    assert data['date_naissance'] == '1965-01-27'
465
    assert data['type'] == 'PP'
375
        params['first_name'] = 'francoi'
376
        params['last_name'] = 'hisquinn'
377
        response = app.get(url, params=params)
466 378

  
379
        # successful matching within distance bracket
380
        data = response.json['data']
381
        assert data['nom'] == 'HISQUIN'
382
        assert data['prenom'] == 'FRANCOIS'
383
        assert data['date_naissance'] == '1965-01-27'
384
        assert data['type'] == 'PP'
467 385

  
468
@mock.patch('passerelle.utils.Request.get')
469
def test_entreprises_endpoint_include_private(mocked_get, app, resource, mock_api_entreprise):
470
    mocked_get.return_value = FakedResponse(content='{}', status_code=200)
471
    request_params = REQUEST_PARAMS.copy()
472 386

  
473
    app.get('/api-entreprise/test/entreprises/443170139/', params=request_params)
474
    assert 'non_diffusables' not in mocked_get.mock_calls[0].kwargs['data']
387
def test_entreprises_endpoint_include_private(app, resource):
388
    with responses.RequestsMock() as rsps:
389
        rsps.get('https://entreprise.api.gouv.fr/v2/entreprises/443170139/', json=ENTREPRISES_RESPONSE)
475 390

  
476
    request_params['include_private'] = True
477
    app.get('/api-entreprise/test/entreprises/443170139/', params=request_params)
478
    assert mocked_get.mock_calls[1].kwargs['data']['non_diffusables'] == 'true'
391
        request_params = REQUEST_PARAMS.copy()
479 392

  
393
        app.get('/api-entreprise/test/entreprises/443170139/', params=request_params)
394
        assert 'non_diffusables' not in rsps.calls[-1].request.body
480 395

  
481
def test_etablissements_endpoint(app, resource, mock_api_entreprise):
482
    response = app.get('/api-entreprise/test/etablissements/44317013900036/', params=REQUEST_PARAMS)
396
        request_params['include_private'] = True
397
        app.get('/api-entreprise/test/entreprises/443170139/', params=request_params)
398
        assert 'non_diffusables=true' in rsps.calls[-1].request.body
399

  
400

  
401
def test_etablissements_endpoint(app, resource):
402
    with responses.RequestsMock() as rsps:
403
        rsps.get(
404
            'https://entreprise.api.gouv.fr/v2/etablissements/44317013900036/', json=ETABLISSEMENTS_RESPONSE
405
        )
406
        response = app.get('/api-entreprise/test/etablissements/44317013900036/', params=REQUEST_PARAMS)
483 407
    assert 'data' in response.json
484 408
    data = response.json['data']
485 409

  
......
495 419
    assert data['etablissement']['adresse']['code_insee_localite'] == '75108'
496 420

  
497 421

  
498
def test_associations_endpoint(app, resource, mock_api_entreprise):
499
    response = app.get('/api-entreprise/test/associations/443170139/', params=REQUEST_PARAMS)
422
def test_associations_endpoint(app, resource):
423
    with responses.RequestsMock() as rsps:
424
        rsps.get('https://entreprise.api.gouv.fr/v2/associations/443170139/', json=ASSOCIATIONS_RESPONSE)
425
        response = app.get('/api-entreprise/test/associations/443170139/', params=REQUEST_PARAMS)
500 426
    assert 'data' in response.json
501 427
    data = response.json['data']
502 428

  
......
512 438
    assert data['association']['adresse_siege']['code_insee'] == '75120'
513 439

  
514 440

  
515
def test_documents_associations_endpoint(app, resource, mock_api_entreprise):
516
    response = app.get('/api-entreprise/test/documents_associations/443170139/', params=REQUEST_PARAMS)
441
def test_documents_associations_endpoint(app, resource):
442
    with responses.RequestsMock() as rsps:
443
        rsps.get(
444
            'https://entreprise.api.gouv.fr/v2/documents_associations/443170139/',
445
            json=DOCUMENTS_ASSOCIATION_RESPONSE,
446
        )
447

  
448
        response = app.get('/api-entreprise/test/documents_associations/443170139/', params=REQUEST_PARAMS)
517 449
    assert 'data' in response.json
518 450
    data = response.json['data']
519 451
    assert len(data) == 3
......
525 457
        assert 'datetime' in document
526 458

  
527 459

  
528
def test_associations_last_document_of_type_endpoint(app, resource, mock_api_entreprise):
529
    params = REQUEST_PARAMS
530
    params['document_type'] = 'Statuts'
531
    response = app.get('/api-entreprise/test/document_association/443170139/get-last/', params=params)
532
    assert 'data' in response.json
533
    data = response.json['data']
534
    assert data['timestamp'] == '1500660325'
460
def test_associations_last_document_of_type_endpoint(app, resource):
461
    with responses.RequestsMock() as rsps:
462
        rsps.get(
463
            'https://entreprise.api.gouv.fr/v2/documents_associations/443170139/',
464
            json=DOCUMENTS_ASSOCIATION_RESPONSE,
465
        )
466

  
467
        params = REQUEST_PARAMS
468
        params['document_type'] = 'Statuts'
469
        response = app.get('/api-entreprise/test/document_association/443170139/get-last/', params=params)
470
        assert 'data' in response.json
471
        data = response.json['data']
472
        assert data['timestamp'] == '1500660325'
535 473

  
536
    params['document_type'] = 'Liste des dirigeants'
537
    response = app.get('/api-entreprise/test/document_association/443170139/get-last/', params=params)
538
    assert not response.json['data']
474
        params['document_type'] = 'Liste des dirigeants'
475
        response = app.get('/api-entreprise/test/document_association/443170139/get-last/', params=params)
476
        assert not response.json['data']
539 477

  
540 478

  
541
def test_extraits_rcs(app, resource, mock_api_entreprise, freezer):
542
    response = app.get('/api-entreprise/test/extraits_rcs/443170139/', params=REQUEST_PARAMS)
479
def test_extraits_rcs(app, resource):
480
    with responses.RequestsMock() as rsps:
481
        rsps.get(
482
            'https://entreprise.api.gouv.fr/v2/extraits_rcs_infogreffe/443170139/', json=EXTRAITS_RCS_RESPONSE
483
        )
484
        response = app.get('/api-entreprise/test/extraits_rcs/443170139/', params=REQUEST_PARAMS)
543 485
    assert 'data' in response.json
544 486
    data = response.json['data']
545 487

  
......
550 492
    assert data['date_immatriculation_datetime'] == '1998-03-26T23:00:00Z'
551 493

  
552 494

  
553
def test_document_association(app, resource, mock_api_entreprise, freezer):
554
    response = app.get('/api-entreprise/test/documents_associations/443170139/', params=REQUEST_PARAMS)
555
    assert 'data' in response.json
556
    data = response.json['data']
557
    assert len(data) == 3
558
    document = data[0]
559
    assert 'url' in document
560
    app.get(document['url'], params={'context': 'MSP', 'object': 'demand', 'recipient': 'siret'}, status=200)
561
    # try to get document with wrong signature
562
    wrong_url = document['url'] + "wrong/"
563
    app.get(wrong_url, status=404)
495
def test_document_association(app, resource, freezer):
496
    with responses.RequestsMock() as rsps:
497
        rsps.get(
498
            'https://entreprise.api.gouv.fr/v2/documents_associations/443170139/',
499
            json=DOCUMENTS_ASSOCIATION_RESPONSE,
500
        )
501

  
502
        response = app.get('/api-entreprise/test/documents_associations/443170139/', params=REQUEST_PARAMS)
503
        assert 'data' in response.json
504
        data = response.json['data']
505
        assert len(data) == 3
506
        document = data[0]
507
        assert 'url' in document
508

  
509
        rsps.get(
510
            'https://apientreprise.fr/attestations/40ab0b07d434d0417e8997ce7c5afbef/attestation_document_association.pdf',
511
            body='binary content',
512
        )
564 513

  
565
    # try expired url
566
    freezer.move_to(timezone.now() + timezone.timedelta(days=8))
567
    app.get(document['url'], status=404)
514
        app.get(
515
            document['url'], params={'context': 'MSP', 'object': 'demand', 'recipient': 'siret'}, status=200
516
        )
517
        # try to get document with wrong signature
518
        wrong_url = document['url'] + "wrong/"
519
        app.get(wrong_url, status=404)
520

  
521
        # try expired url
522
        freezer.move_to(timezone.now() + timezone.timedelta(days=8))
523
        app.get(document['url'], status=404)
568 524

  
569 525

  
570
def test_effectifs_annuels_acoss_covid(app, resource, mock_api_entreprise, freezer):
571
    response = app.get('/api-entreprise/test/effectifs_annuels_acoss_covid/418166096/', params=REQUEST_PARAMS)
526
def test_effectifs_annuels_acoss_covid(app, resource):
527
    with responses.RequestsMock() as rsps:
528
        rsps.get(
529
            'https://entreprise.api.gouv.fr/v2/effectifs_annuels_acoss_covid/418166096/',
530
            json=EFFECTIFS_ANNUELS_ACOSS_COVID,
531
        )
532

  
533
        response = app.get(
534
            '/api-entreprise/test/effectifs_annuels_acoss_covid/418166096/', params=REQUEST_PARAMS
535
        )
572 536
    data = response.json['data']
573 537
    assert data['siren'] == '418166096'
574 538
    assert data['annee'] == '2019'
575 539
    assert data['effectifs_annuels'] == 100.5
576 540

  
577 541

  
578
def test_entreprise_effectifs_mensuels_acoss_covid(app, resource, mock_api_entreprise, freezer):
579
    response = app.get(
580
        '/api-entreprise/test/entreprise_effectifs_mensuels_acoss_covid/2019/02/418166096/',
581
        params=REQUEST_PARAMS,
582
    )
542
def test_entreprise_effectifs_mensuels_acoss_covid(app, resource):
543
    with responses.RequestsMock() as rsps:
544
        rsps.get(
545
            'https://entreprise.api.gouv.fr/v2/effectifs_mensuels_acoss_covid/2019/02/entreprise/418166096/',
546
            json=ENTREPRISE_EFFECTIFS_MENSUELS_ACOSS_COVID,
547
        )
548

  
549
        response = app.get(
550
            '/api-entreprise/test/entreprise_effectifs_mensuels_acoss_covid/2019/02/418166096/',
551
            params=REQUEST_PARAMS,
552
        )
553

  
583 554
    data = response.json['data']
584 555
    assert data['siren'] == '418166096'
585 556
    assert data['annee'] == '2019'
......
587 558
    assert data['effectifs_mensuels'] == 100.5
588 559

  
589 560

  
590
def test_etablissment_effectifs_mensuels_acoss_covid(app, resource, mock_api_entreprise, freezer):
591
    response = app.get(
592
        '/api-entreprise/test/etablissement_effectifs_mensuels_acoss_covid/2019/02/418166096/',
593
        params=REQUEST_PARAMS,
594
    )
561
def test_etablissment_effectifs_mensuels_acoss_covid(app, resource):
562
    with responses.RequestsMock() as rsps:
563
        rsps.get(
564
            'https://entreprise.api.gouv.fr/v2/effectifs_mensuels_acoss_covid/2019/02/etablissement/418166096/',
565
            json=ETABLISSEMENT_EFFECTIFS_MENSUELS_ACOSS_COVID,
566
        )
567

  
568
        response = app.get(
569
            '/api-entreprise/test/etablissement_effectifs_mensuels_acoss_covid/2019/02/418166096/',
570
            params=REQUEST_PARAMS,
571
        )
595 572
    data = response.json['data']
596 573
    assert data['siret'] == '41816609600051'
597 574
    assert data['annee'] == '2019'
......
599 576
    assert data['effectifs_mensuels'] == 100.5
600 577

  
601 578

  
602
def test_exercices(app, resource, mock_api_entreprise, freezer):
603
    response = app.get('/api-entreprise/test/exercices/418166096/', params=REQUEST_PARAMS)
579
def test_exercices(app, resource):
580
    with responses.RequestsMock() as rsps:
581
        rsps.get('https://entreprise.api.gouv.fr/v2/exercices/418166096/', json=EXERCICES_RESPONSE)
582
        response = app.get('/api-entreprise/test/exercices/418166096/', params=REQUEST_PARAMS)
604 583
    data = response.json['data']
605 584
    assert len(data['exercices']) == 3
606 585
    exercice = data['exercices'][0]
......
610 589
    assert exercice['date_fin_exercice_datetime'] == '2016-12-30T23:00:00Z'
611 590

  
612 591

  
613
def test_error_500(app, resource, mock_api_entreprise):
614
    with HTTMock(api_entreprise_error_500):
592
def test_error_500(app, resource):
593
    with responses.RequestsMock() as rsps:
594
        rsps.get(
595
            'https://entreprise.api.gouv.fr/v2/entreprises/443170139/', body='bad error happened', status=500
596
        )
615 597
        response = app.get('/api-entreprise/test/entreprises/443170139/', params=REQUEST_PARAMS)
616 598
        assert response.status_code == 200
617 599
        assert response.json['err'] == 1
......
619 601
        assert 'error happened' in response.json['err_desc']
620 602

  
621 603

  
622
def test_no_json_error(app, resource, mock_api_entreprise):
623
    with HTTMock(api_entreprise_error_not_json):
604
def test_no_json_error(app, resource):
605
    with responses.RequestsMock() as rsps:
606
        rsps.get(
607
            'https://entreprise.api.gouv.fr/v2/entreprises/443170139/',
608
            body='simple text',
609
        )
624 610
        response = app.get('/api-entreprise/test/entreprises/443170139/', params=REQUEST_PARAMS)
625 611
        assert response.status_code == 200
626 612
        assert response.json['err'] == 1
......
630 616
        )
631 617

  
632 618

  
633
def test_error_404(app, resource, mock_api_entreprise):
634
    with HTTMock(api_entreprise_error_not_found):
619
def test_error_404(app, resource):
620
    with responses.RequestsMock() as rsps:
621
        rsps.get(
622
            'https://entreprise.api.gouv.fr/v2/entreprises/443170139/',
623
            json={'error': 'not_found', 'message': 'Page not found'},
624
            status=404,
625
        )
635 626
        response = app.get('/api-entreprise/test/entreprises/443170139/', params=REQUEST_PARAMS)
636 627
        assert response.status_code == 200
637 628
        assert response.json['err'] == 1
638 629
        assert response.json['err_desc'] == 'Page not found'
639 630

  
640 631

  
641
def test_connection_error(app, resource, mock_api_entreprise):
642
    with HTTMock(api_entreprise_connection_error):
632
def test_connection_error(app, resource):
633
    with responses.RequestsMock() as rsps:
634
        rsps.get(
635
            'https://entreprise.api.gouv.fr/v2/entreprises/443170139/',
636
            body=requests.RequestException('connection timed-out'),
637
        )
643 638
        response = app.get('/api-entreprise/test/entreprises/443170139/', params=REQUEST_PARAMS)
644 639
        assert response.status_code == 200
645 640
        assert response.json['err'] == 1
646
-