Projet

Général

Profil

0002-misc-add-__init__-file-to-tests-dir-62099.patch

Lauréline Guérin, 22 mars 2022 10:29

Télécharger (245 ko)

Voir les différences:

Subject: [PATCH 02/65] misc: add __init__ file to tests dir (#62099)

 tests/__init__.py                |   0
 tests/conftest.py                |   3 +-
 tests/test_actesweb.py           |   4 +-
 tests/test_address.py            |  12 +--
 tests/test_adict.py              |  12 +--
 tests/test_airquality.py         |   6 +-
 tests/test_api.py                |   2 +-
 tests/test_api_access.py         |   2 +-
 tests/test_api_entreprise.py     |   2 +-
 tests/test_api_particulier.py    |   4 +-
 tests/test_arcgis.py             |  24 +++--
 tests/test_arpege_ecp.py         |  46 ++++-----
 tests/test_astech.py             |  46 +++++----
 tests/test_astregs.py            |   4 +-
 tests/test_atos_genesys.py       |  62 +++++------
 tests/test_availability.py       |   4 +-
 tests/test_base_adresse.py       |  64 ++++++------
 tests/test_caluire_axel.py       |   4 +-
 tests/test_cartads_cs.py         |   4 +-
 tests/test_cityweb.py            |   4 +-
 tests/test_clicrdv.py            |   2 +-
 tests/test_cmis.py               |   2 +-
 tests/test_cryptor.py            |  14 +--
 tests/test_csv_datasource.py     |   2 +-
 tests/test_dpark.py              |   2 +-
 tests/test_esirius.py            |   8 +-
 tests/test_esirius_swi.py        |   4 +-
 tests/test_feeds.py              |   8 +-
 tests/test_franceconnect_data.py |   6 +-
 tests/test_gdema.py              |  24 ++---
 tests/test_generic_endpoint.py   |  20 ++--
 tests/test_gesbac.py             |   2 +-
 tests/test_greco.py              |   8 +-
 tests/test_grenoble_gru.py       |   6 +-
 tests/test_isere_ens.py          |  60 +++++------
 tests/test_jobs.py               |  16 +--
 tests/test_jsonresponse.py       |   2 +-
 tests/test_lille_kimoce.py       |  32 +++---
 tests/test_lille_urban_card.py   |  32 +++---
 tests/test_maelis.py             |  36 +++----
 tests/test_mdel.py               |   4 +-
 tests/test_mdel_ddpacs.py        |   4 +-
 tests/test_mdph13.py             |   4 +-
 tests/test_misc.py               |   4 +-
 tests/test_okina.py              |  66 ++++++------
 tests/test_opendatasoft.py       |  40 +++----
 tests/test_opengis.py            |  82 ++++++++-------
 tests/test_phonecalls.py         |  14 +--
 tests/test_photon.py             |  22 ++--
 tests/test_plone_restapi.py      |  98 +++++++++---------
 tests/test_proxylogger.py        |  14 +--
 tests/test_requests.py           |   4 +-
 tests/test_rsa13.py              |   4 +-
 tests/test_sector.py             |   6 +-
 tests/test_sigerly.py            |   6 +-
 tests/test_sms.py                |  34 +++---
 tests/test_solis.py              | 172 ++++++++++++++++---------------
 tests/test_solis_afi_mss.py      |   8 +-
 tests/test_strasbourg_eu.py      |   8 +-
 tests/test_tcl.py                |   8 +-
 tests/test_teamnet_axel.py       |   4 +-
 tests/test_toulouse_axel.py      |   4 +-
 tests/test_toulouse_smart.py     |   8 +-
 tests/test_vivaticket.py         |  68 ++++++------
 tests/wcs/test_sp_fr.py          |   4 +-
 65 files changed, 657 insertions(+), 628 deletions(-)
 create mode 100644 tests/__init__.py
tests/conftest.py
7 7
from django.core.files import File
8 8
from django.utils import six
9 9
from httmock import HTTMock, remember_called, response, urlmatch
10
from utils import make_resource
10

  
11
from tests.utils import make_resource
11 12

  
12 13
if six.PY2:
13 14
    collect_ignore = ['wcs/']
tests/test_actesweb.py
23 23
import stat
24 24

  
25 25
import pytest
26
import utils
27 26
from django.utils import six
28 27

  
28
import tests.utils
29 29
from passerelle.apps.actesweb.models import ActesWeb
30 30

  
31 31

  
......
41 41

  
42 42
@pytest.fixture
43 43
def actesweb(db):
44
    return utils.make_resource(ActesWeb, **{'slug': 'test'})
44
    return tests.utils.make_resource(ActesWeb, **{'slug': 'test'})
45 45

  
46 46

  
47 47
PAYLOAD = [
tests/test_address.py
18 18

  
19 19
import mock
20 20
import pytest
21
import utils
22 21
from django.core.files import File
23 22
from django.utils.six import StringIO
24 23

  
24
import tests.utils
25 25
from passerelle.apps.base_adresse.models import BaseAdresse
26 26
from passerelle.apps.sector.models import SectorResource
27 27

  
......
216 216

  
217 217
@pytest.fixture
218 218
def sector(db):
219
    return utils.setup_access_rights(
219
    return tests.utils.setup_access_rights(
220 220
        SectorResource.objects.create(
221 221
            slug='ecole',
222 222
            title='Secteur scolaire',
......
228 228

  
229 229
@pytest.fixture
230 230
def base_adresse(db):
231
    return utils.setup_access_rights(BaseAdresse.objects.create(slug='base-adresse', zipcode='75114'))
231
    return tests.utils.setup_access_rights(BaseAdresse.objects.create(slug='base-adresse', zipcode='75114'))
232 232

  
233 233

  
234 234
@mock.patch('passerelle.utils.Request.get')
235 235
def test_sectorization(mocked_get, app, base_adresse, sector):
236 236
    assert base_adresse.sectors.count() == 0
237
    mocked_get.return_value = utils.FakedResponse(content=json.dumps(BAN), status_code=200)
238
    url = utils.generic_endpoint_url('base-adresse', 'search', slug=base_adresse.slug)
237
    mocked_get.return_value = tests.utils.FakedResponse(content=json.dumps(BAN), status_code=200)
238
    url = tests.utils.generic_endpoint_url('base-adresse', 'search', slug=base_adresse.slug)
239 239
    addresses = app.get(url, params={'q': 'foo'}, status=200).json
240 240
    assert len(addresses) == 8
241 241
    for address in addresses:
......
267 267
    assert addresses[7]['sectors'] == {}
268 268
    assert addresses[7]['sectorization_error'] == 'missing street_id in address'
269 269

  
270
    url = utils.generic_endpoint_url('base-adresse', 'sectors', slug=base_adresse.slug)
270
    url = tests.utils.generic_endpoint_url('base-adresse', 'sectors', slug=base_adresse.slug)
271 271
    for params in (None, {'id': 'ecole'}, {'q': 'scolaire'}):
272 272
        sectors = app.get(url, params=params, status=200).json
273 273
        assert sectors['err'] == 0
tests/test_adict.py
2 2

  
3 3
import mock
4 4
import pytest
5
import utils
6 5

  
6
import tests.utils
7 7
from passerelle.contrib.adict.models import Adict
8 8

  
9 9
FAKE_FEATURE_INFO = json.dumps(
......
28 28

  
29 29
@pytest.fixture
30 30
def connector(db):
31
    return utils.setup_access_rights(
31
    return tests.utils.setup_access_rights(
32 32
        Adict.objects.create(
33 33
            slug='test',
34 34
            service_root_url='http://adict.example.net/',
......
40 40

  
41 41
@mock.patch('passerelle.utils.Request.get')
42 42
def test_feature_info(mocked_get, app, connector):
43
    endpoint = utils.generic_endpoint_url('adict', 'feature_info', slug=connector.slug)
43
    endpoint = tests.utils.generic_endpoint_url('adict', 'feature_info', slug=connector.slug)
44 44
    assert endpoint == '/adict/test/feature_info'
45
    mocked_get.return_value = utils.FakedResponse(content=FAKE_FEATURE_INFO, status_code=200)
45
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKE_FEATURE_INFO, status_code=200)
46 46
    resp = app.get(endpoint, params={'lat': '48.570472877', 'lon': '7.75659804'})
47 47
    assert mocked_get.call_args[0][0] == 'http://adict.example.net/api/v1.0/secteurs'
48 48
    assert mocked_get.call_args[1]['params']['x'] == '7.75659804'
......
52 52

  
53 53
@mock.patch('passerelle.utils.Request.get')
54 54
def test_no_feature_info(mocked_get, app, connector):
55
    endpoint = utils.generic_endpoint_url('adict', 'feature_info', slug=connector.slug)
55
    endpoint = tests.utils.generic_endpoint_url('adict', 'feature_info', slug=connector.slug)
56 56
    assert endpoint == '/adict/test/feature_info'
57
    mocked_get.return_value = utils.FakedResponse(content=json.dumps({'features': []}), status_code=200)
57
    mocked_get.return_value = tests.utils.FakedResponse(content=json.dumps({'features': []}), status_code=200)
58 58
    resp = app.get(endpoint, params={'lat': '48.570472877', 'lon': '7.75659804'})
59 59
    assert resp.json['err'] == 1
60 60
    assert resp.json['err_msg'] == 'not found'
tests/test_airquality.py
2 2

  
3 3
import freezegun
4 4
import pytest
5
import utils
6 5
from httmock import HTTMock, response
7 6

  
7
import tests.utils
8 8
from passerelle.apps.airquality.models import AirQuality
9 9

  
10 10
SAMPLE_RESPONSE = {
......
69 69

  
70 70
@freezegun.freeze_time('2020-12-21')
71 71
def test_airquality_details(app, airquality):
72
    endpoint = utils.generic_endpoint_url('airquality', 'details', slug=airquality.slug)
72
    endpoint = tests.utils.generic_endpoint_url('airquality', 'details', slug=airquality.slug)
73 73
    assert endpoint == '/airquality/atmo/details'
74 74
    with HTTMock(mocked_http):
75 75
        resp = app.get(endpoint + '/fr/lyon/', status=200)
......
78 78

  
79 79

  
80 80
def test_airquality_details_unknown_city(app, airquality):
81
    endpoint = utils.generic_endpoint_url('airquality', 'details', slug=airquality.slug)
81
    endpoint = tests.utils.generic_endpoint_url('airquality', 'details', slug=airquality.slug)
82 82
    resp = app.get(endpoint + '/fr/paris/', status=404)
tests/test_api.py
19 19
from django.contrib.contenttypes.models import ContentType
20 20
from django.test import override_settings
21 21
from django.urls import reverse
22
from test_manager import login
23 22

  
24 23
from passerelle.apps.ovh.models import OVHSMSGateway
25 24
from passerelle.base.models import AccessRight, ApiUser, Job
25
from tests.test_manager import login
26 26

  
27 27
pytestmark = pytest.mark.django_db
28 28

  
tests/test_api_access.py
2 2
import sys
3 3

  
4 4
import pytest
5
import utils
6 5
from django.contrib.auth.models import User
7 6
from django.contrib.contenttypes.models import ContentType
8 7
from django.test import override_settings
9 8
from django.urls import reverse
10 9

  
10
import tests.utils
11 11
from passerelle.apps.oxyd.models import OxydSMSGateway
12 12
from passerelle.base import signature
13 13
from passerelle.base.models import AccessRight, ApiUser, ResourceLog
tests/test_api_entreprise.py
21 21
import requests
22 22
from django.utils import timezone
23 23
from httmock import HTTMock, response, urlmatch
24
from utils import FakedResponse, make_resource
25 24

  
26 25
from passerelle.apps.api_entreprise.models import APIEntreprise
26
from tests.utils import FakedResponse, make_resource
27 27

  
28 28
ETABLISSEMENTS_RESPONSE = {
29 29
    "etablissement": {
tests/test_api_particulier.py
22 22
import requests
23 23
from django.urls import reverse
24 24
from httmock import HTTMock, response, urlmatch
25
from test_manager import login
26
from utils import endpoint_get, make_resource
27 25

  
28 26
from passerelle.apps.api_particulier.models import APIParticulier
29 27
from passerelle.base.models import ResourceLog
28
from tests.test_manager import login
29
from tests.utils import endpoint_get, make_resource
30 30

  
31 31
SVAIR_RESPONSE = {
32 32
    "declarant1": {
tests/test_arcgis.py
5 5

  
6 6
import mock
7 7
import pytest
8
import utils
9 8
from django.contrib.auth.models import User
10 9
from django.contrib.contenttypes.models import ContentType
11 10
from django.core.exceptions import ValidationError
12
from test_manager import login
13 11

  
12
import tests.utils
14 13
from passerelle.apps.arcgis.models import ArcGIS, Query, SqlFormatter, validate_where
15 14
from passerelle.base.models import AccessRight, ApiUser
16 15
from passerelle.utils import import_site
16
from tests.test_manager import login
17 17

  
18 18
pytestmark = pytest.mark.django_db
19 19

  
......
89 89

  
90 90

  
91 91
def test_arcgis_mapservice_query(app, arcgis):
92
    endpoint = utils.generic_endpoint_url('arcgis', 'mapservice-query', slug=arcgis.slug)
92
    endpoint = tests.utils.generic_endpoint_url('arcgis', 'mapservice-query', slug=arcgis.slug)
93 93
    assert endpoint == '/arcgis/test/mapservice-query'
94 94
    params = {'folder': 'fold', 'service': 'serv', 'layer': '1'}
95 95

  
96 96
    with mock.patch('passerelle.utils.Request.get') as requests_get:
97
        requests_get.return_value = utils.FakedResponse(content=STATES, status_code=200)
97
        requests_get.return_value = tests.utils.FakedResponse(content=STATES, status_code=200)
98 98

  
99 99
        resp = app.get(endpoint, params=params, status=403)
100 100
        assert requests_get.call_count == 0
......
241 241

  
242 242
    # call errors
243 243
    with mock.patch('passerelle.utils.Request.get') as requests_get:
244
        requests_get.return_value = utils.FakedResponse(content=STATES, status_code=200)
244
        requests_get.return_value = tests.utils.FakedResponse(content=STATES, status_code=200)
245 245
        resp = app.get(endpoint, params={}, status=400)
246 246
        assert requests_get.call_count == 0
247 247
        assert resp.json['err'] == 1
......
343 343
        'meta': {},
344 344
    }
345 345
    with mock.patch('passerelle.utils.Request.get') as requests_get:
346
        requests_get.return_value = utils.FakedResponse(content=json.dumps(arcgis_response), status_code=200)
346
        requests_get.return_value = tests.utils.FakedResponse(
347
            content=json.dumps(arcgis_response), status_code=200
348
        )
347 349
        assert query.q(rf.get('/', data={'adress': "AVENUE D'ANNAM"}), full=True) == {
348 350
            "data": [
349 351
                {
......
370 372

  
371 373

  
372 374
def test_q_endpoint(arcgis, query, app):
373
    endpoint = utils.generic_endpoint_url('arcgis', 'q/adresses/', slug=arcgis.slug)
375
    endpoint = tests.utils.generic_endpoint_url('arcgis', 'q/adresses/', slug=arcgis.slug)
374 376
    assert endpoint == '/arcgis/test/q/adresses/'
375 377

  
376 378
    with mock.patch('passerelle.utils.Request.get') as requests_get:
377
        requests_get.return_value = utils.FakedResponse(content=STATES, status_code=200)
379
        requests_get.return_value = tests.utils.FakedResponse(content=STATES, status_code=200)
378 380

  
379 381
        resp = app.get(endpoint, params={}, status=403)
380 382
        assert requests_get.call_count == 0
......
406 408
    assert arcgis.base_url == 'https://arcgis.example.net/'
407 409

  
408 410
    with mock.patch('passerelle.utils.Request.get') as requests_get:
409
        requests_get.return_value = utils.FakedResponse(content='', status_code=200)
411
        requests_get.return_value = tests.utils.FakedResponse(content='', status_code=200)
410 412

  
411 413
        resp = app.get('/arcgis/test/tile/layer1/13/4258/2991.png')
412 414
        assert requests_get.call_count == 1
......
419 421

  
420 422
    # test layer and folders
421 423
    with mock.patch('passerelle.utils.Request.get') as requests_get:
422
        requests_get.return_value = utils.FakedResponse(content='', status_code=200)
424
        requests_get.return_value = tests.utils.FakedResponse(content='', status_code=200)
423 425

  
424 426
        resp = app.get('/arcgis/test/tile/layer1/foo/bar/13/4258/2991.png')
425 427
        assert requests_get.call_count == 1
......
434 436
    arcgis.base_url = 'https://arcgis.example.net'
435 437
    arcgis.save()
436 438
    with mock.patch('passerelle.utils.Request.get') as requests_get:
437
        requests_get.return_value = utils.FakedResponse(content='', status_code=200)
439
        requests_get.return_value = tests.utils.FakedResponse(content='', status_code=200)
438 440

  
439 441
        resp = app.get('/arcgis/test/tile/layer1/13/4258/2991.png')
440 442
        assert requests_get.call_count == 1
tests/test_arpege_ecp.py
4 4

  
5 5
import mock
6 6
import pytest
7
import utils
8 7
from django.urls import reverse
9 8

  
9
import tests.utils
10 10
from passerelle.apps.arpege_ecp.models import ArpegeECP
11 11
from passerelle.utils.jsonresponse import APIError
12 12

  
......
65 65
    resource = ArpegeECP.objects.create(
66 66
        slug='test', webservice_base_url='http://arpege.net', hawk_auth_id='id', hawk_auth_key='secret'
67 67
    )
68
    return utils.setup_access_rights(resource)
68
    return tests.utils.setup_access_rights(resource)
69 69

  
70 70

  
71 71
@mock.patch('passerelle.utils.Request.get')
72 72
def test_check_status(mocked_get, connector):
73
    mocked_get.return_value = utils.FakedResponse(content=FAKE_HELLO_RESPONSE, status_code=200)
73
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKE_HELLO_RESPONSE, status_code=200)
74 74
    resp = connector.check_status()
75 75
    assert resp['data'] == u'InteropAPI v1 (c) Arpège 2017'
76 76

  
......
79 79
def test_check_status(mocked_get, connector):
80 80
    hello_response = json.loads(FAKE_HELLO_RESPONSE)
81 81
    del hello_response['Data']
82
    mocked_get.return_value = utils.FakedResponse(content=json.dumps(hello_response), status_code=200)
82
    mocked_get.return_value = tests.utils.FakedResponse(content=json.dumps(hello_response), status_code=200)
83 83
    with pytest.raises(Exception) as error:
84 84
        resp = connector.check_status()
85 85
    assert str(error.value) == 'Invalid credentials'
86 86

  
87 87

  
88 88
def test_get_access_token(connector):
89
    with utils.mock_url(response=FAKE_LOGIN_OIDC_RESPONSE):
89
    with tests.utils.mock_url(response=FAKE_LOGIN_OIDC_RESPONSE):
90 90
        token = connector.get_access_token('nameid')
91 91
    assert token == '0f86353f2d87b8b78aaaacc2ecc763e287ded44f773289a5e336546a251718b3'
92 92

  
93
    with utils.mock_url(response=FAKE_LOGIN_OIDC_RESPONSE, status_code=404):
93
    with tests.utils.mock_url(response=FAKE_LOGIN_OIDC_RESPONSE, status_code=404):
94 94
        with pytest.raises(APIError) as error:
95 95
            token = connector.get_access_token('nameid')
96 96

  
97 97
    assert ' 404 ' in str(error.value)
98 98

  
99
    with utils.mock_url(response="content", status_code=200):
99
    with tests.utils.mock_url(response="content", status_code=200):
100 100
        with pytest.raises(APIError) as error:
101 101
            token = connector.get_access_token('nameid')
102 102
    assert 'no JSON content' in str(error.value)
103 103

  
104
    with utils.mock_url(response="content", status_code=200):
104
    with tests.utils.mock_url(response="content", status_code=200):
105 105
        with pytest.raises(APIError) as error:
106 106
            token = connector.get_access_token('nameid')
107 107
    assert 'no JSON content' in str(error.value)
108 108

  
109
    with utils.mock_url(
109
    with tests.utils.mock_url(
110 110
        response='{"IsSuccess": false, "CodErreur": "Fail", "LibErreur": "Auth FAIL"}', status_code=200
111 111
    ):
112 112
        with pytest.raises(APIError) as error:
......
128 128
    )
129 129
    assert endpoint == '/arpege-ecp/test/api/users/nameid/forms'
130 130

  
131
    mocked_post.return_value = utils.FakedResponse(content=FAKE_LOGIN_OIDC_RESPONSE, status_code=200)
132
    mocked_get.return_value = utils.FakedResponse(content=FAKE_USER_DEMANDS_RESPONSE, status_code=200)
131
    mocked_post.return_value = tests.utils.FakedResponse(content=FAKE_LOGIN_OIDC_RESPONSE, status_code=200)
132
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKE_USER_DEMANDS_RESPONSE, status_code=200)
133 133
    resp = app.get(endpoint)
134 134
    result = resp.json
135 135
    assert resp.json['data']
......
160 160
        },
161 161
    )
162 162

  
163
    mocked_post.return_value = utils.FakedResponse(content=FAKE_LOGIN_OIDC_RESPONSE, status_code=200)
164
    mocked_get.return_value = utils.FakedResponse(
163
    mocked_post.return_value = tests.utils.FakedResponse(content=FAKE_LOGIN_OIDC_RESPONSE, status_code=200)
164
    mocked_get.return_value = tests.utils.FakedResponse(
165 165
        content='{"IsSuccess": false, "CodErreur": "Fail", "LibErreur": "Failed to get demands"}',
166 166
        status_code=200,
167 167
    )
......
182 182
        },
183 183
    )
184 184

  
185
    with utils.mock_url(url='/LoginParSubOIDC', response=FAKE_LOGIN_OIDC_RESPONSE):
186
        with utils.mock_url(url='/DemandesUsager', status_code=404):
185
    with tests.utils.mock_url(url='/LoginParSubOIDC', response=FAKE_LOGIN_OIDC_RESPONSE):
186
        with tests.utils.mock_url(url='/DemandesUsager', status_code=404):
187 187
            resp = app.get(endpoint)
188 188
            result = resp.json
189 189
            assert result['err'] == 1
......
204 204
        },
205 205
    )
206 206

  
207
    mocked_post.return_value = utils.FakedResponse(content=FAKE_LOGIN_OIDC_RESPONSE, status_code=200)
208
    mocked_get.return_value = utils.FakedResponse(content='content', status_code=200)
207
    mocked_post.return_value = tests.utils.FakedResponse(content=FAKE_LOGIN_OIDC_RESPONSE, status_code=200)
208
    mocked_get.return_value = tests.utils.FakedResponse(content='content', status_code=200)
209 209
    resp = app.get(endpoint)
210 210
    result = resp.json
211 211
    assert result['err'] == 1
......
228 228
    demands_response = json.loads(FAKE_USER_DEMANDS_RESPONSE)
229 229
    demands_response['Data']['results'][0]['data_administratives']['date_depot'] = None
230 230

  
231
    mocked_post.return_value = utils.FakedResponse(content=FAKE_LOGIN_OIDC_RESPONSE, status_code=200)
232
    mocked_get.return_value = utils.FakedResponse(content=json.dumps(demands_response), status_code=200)
231
    mocked_post.return_value = tests.utils.FakedResponse(content=FAKE_LOGIN_OIDC_RESPONSE, status_code=200)
232
    mocked_get.return_value = tests.utils.FakedResponse(content=json.dumps(demands_response), status_code=200)
233 233
    resp = app.get(endpoint)
234 234
    result = resp.json
235 235
    assert result['err'] == 1
......
251 251

  
252 252
    token_response = json.loads(FAKE_LOGIN_OIDC_RESPONSE)
253 253
    del token_response['Data']['AccessToken']
254
    mocked_post.return_value = utils.FakedResponse(content=json.dumps(token_response), status_code=200)
255
    mocked_get.return_value = utils.FakedResponse(content='content', status_code=200)
254
    mocked_post.return_value = tests.utils.FakedResponse(content=json.dumps(token_response), status_code=200)
255
    mocked_get.return_value = tests.utils.FakedResponse(content='content', status_code=200)
256 256
    resp = app.get(endpoint)
257 257
    result = resp.json
258 258
    assert result['err'] == 1
......
274 274

  
275 275
    token_response = json.loads(FAKE_LOGIN_OIDC_RESPONSE)
276 276
    token_response['Data']['AccessToken'] = None
277
    mocked_post.return_value = utils.FakedResponse(content=json.dumps(token_response), status_code=200)
278
    mocked_get.return_value = utils.FakedResponse(content='content', status_code=200)
277
    mocked_post.return_value = tests.utils.FakedResponse(content=json.dumps(token_response), status_code=200)
278
    mocked_get.return_value = tests.utils.FakedResponse(content='content', status_code=200)
279 279
    resp = app.get(endpoint)
280 280
    result = resp.json
281 281
    assert result['err'] == 1
tests/test_astech.py
18 18

  
19 19
import mock
20 20
import pytest
21
import utils
22 21
from django.urls import reverse
23 22
from requests import Request
24 23
from requests.exceptions import ConnectionError
25 24

  
25
import tests.utils
26 26
from passerelle.apps.astech.models import ASTech
27 27
from passerelle.utils.jsonresponse import APIError
28 28

  
29 29

  
30 30
@pytest.fixture
31 31
def setup(db):
32
    return utils.setup_access_rights(
32
    return tests.utils.setup_access_rights(
33 33
        ASTech.objects.create(
34 34
            slug='test',
35 35
            base_url='https://astech.example.net/app.php/',
......
82 82

  
83 83
@mock.patch("passerelle.utils.Request.request")
84 84
def test_connections(mocked_request, app, setup):
85
    mocked_request.return_value = utils.FakedResponse(content=CONNECTION_RESPONSE, status_code=200)
85
    mocked_request.return_value = tests.utils.FakedResponse(content=CONNECTION_RESPONSE, status_code=200)
86 86
    endpoint = reverse(
87 87
        "generic-endpoint",
88 88
        kwargs={"connector": "astech", "slug": setup.slug, "endpoint": "connections"},
......
104 104
    assert response.json["data"]["default"] == "TEST"
105 105

  
106 106
    # bad response
107
    mocked_request.return_value = utils.FakedResponse(
107
    mocked_request.return_value = tests.utils.FakedResponse(
108 108
        content='{"msg": "not found"}', status_code=404, reason="Not Found"
109 109
    )
110 110
    response = app.get(endpoint)
......
113 113
    assert response.json["err_desc"] == "AS-TECH response: 404 Not Found"
114 114
    assert response.json["data"]["error"]["status"] == 404
115 115
    assert response.json["data"]["error"]["content"]["msg"] == "not found"
116
    mocked_request.return_value = utils.FakedResponse(content="crash", status_code=500, reason="Crashhhh")
116
    mocked_request.return_value = tests.utils.FakedResponse(
117
        content="crash", status_code=500, reason="Crashhhh"
118
    )
117 119
    response = app.get(endpoint)
118 120
    assert response.json["err"] == 1
119 121
    assert response.json["err_class"].endswith("APIError")
120 122
    assert response.json["err_desc"] == "AS-TECH response: 500 Crashhhh"
121 123
    assert response.json["data"]["error"]["status"] == 500
122 124
    assert response.json["data"]["error"]["content"] == "crash"
123
    mocked_request.return_value = utils.FakedResponse(content="not json", status_code=200, reason="OK")
125
    mocked_request.return_value = tests.utils.FakedResponse(content="not json", status_code=200, reason="OK")
124 126
    response = app.get(endpoint)
125 127
    assert response.json["err"] == 1
126 128
    assert response.json["err_class"].endswith("APIError")
......
135 137
@mock.patch("passerelle.utils.Request.request")
136 138
def test_authorization(mocked_request, app, setup):
137 139
    mocked_request.side_effect = [
138
        utils.FakedResponse(content=CONNECTION_RESPONSE, status_code=200),
139
        utils.FakedResponse(content=AUTH_RESPONSE, status_code=200),
140
        tests.utils.FakedResponse(content=CONNECTION_RESPONSE, status_code=200),
141
        tests.utils.FakedResponse(content=AUTH_RESPONSE, status_code=200),
140 142
    ]
141 143
    endpoint = reverse(
142 144
        "generic-endpoint",
......
166 168
        kwargs={"connector": "astech", "slug": setup.slug, "endpoint": "services"},
167 169
    )
168 170

  
169
    mocked_request.return_value = utils.FakedResponse(content=SERVICES_RESPONSE, status_code=200)
171
    mocked_request.return_value = tests.utils.FakedResponse(content=SERVICES_RESPONSE, status_code=200)
170 172
    response = app.get(endpoint)
171 173
    assert mocked_request.call_count == 1
172 174
    assert mocked_request.call_args[0][0] == 'post'
......
190 192
        kwargs={"connector": "astech", "slug": setup.slug, "endpoint": "companies"},
191 193
    )
192 194

  
193
    mocked_request.return_value = utils.FakedResponse(content=COMPANIES_RESPONSE, status_code=200)
195
    mocked_request.return_value = tests.utils.FakedResponse(content=COMPANIES_RESPONSE, status_code=200)
194 196
    response = app.get(endpoint)
195 197
    assert mocked_request.call_count == 1
196 198
    assert mocked_request.call_args[0][0] == 'post'
......
214 216
    )
215 217

  
216 218
    mocked_request.side_effect = [
217
        utils.FakedResponse(content=COMPANY_RESPONSE, status_code=200),
218
        utils.FakedResponse(content=LABELS_RESPONSE, status_code=200),
219
        tests.utils.FakedResponse(content=COMPANY_RESPONSE, status_code=200),
220
        tests.utils.FakedResponse(content=LABELS_RESPONSE, status_code=200),
219 221
    ]
220 222
    response = app.get(endpoint, status=200)
221 223
    assert mocked_request.call_count == 2
......
233 235
    ]
234 236

  
235 237
    mocked_request.reset_mock(side_effect=True)
236
    mocked_request.return_value = utils.FakedResponse(content=LABELS_RESPONSE, status_code=200)
238
    mocked_request.return_value = tests.utils.FakedResponse(content=LABELS_RESPONSE, status_code=200)
237 239
    response = app.get(endpoint + '?company=42', status=200)
238 240
    assert mocked_request.call_count == 1
239 241
    assert mocked_request.call_args[0][0] == 'post'
......
253 255
    )
254 256

  
255 257
    mocked_request.side_effect = [
256
        utils.FakedResponse(content=COMPANY_RESPONSE, status_code=200),
257
        utils.FakedResponse(content=PARAMETER_RESPONSE, status_code=200),
258
        tests.utils.FakedResponse(content=COMPANY_RESPONSE, status_code=200),
259
        tests.utils.FakedResponse(content=PARAMETER_RESPONSE, status_code=200),
258 260
    ]
259 261
    response = app.get(endpoint + '?name=LIBELDEMDEF', status=200)
260 262
    assert mocked_request.call_count == 2
......
266 268
    assert response.json['data']['LIBELDEMDEF'] == 'O'
267 269

  
268 270
    mocked_request.reset_mock(side_effect=True)
269
    mocked_request.return_value = utils.FakedResponse(content=PARAMETER_RESPONSE, status_code=200)
271
    mocked_request.return_value = tests.utils.FakedResponse(content=PARAMETER_RESPONSE, status_code=200)
270 272
    response = app.get(endpoint + '?name=LIBELDEMDEF&company=00', status=200)
271 273
    assert mocked_request.call_count == 1
272 274
    assert mocked_request.call_args[0][0] == 'get'
......
286 288
        kwargs={"connector": "astech", "slug": setup.slug, "endpoint": "create-demand"},
287 289
    )
288 290

  
289
    mocked_request.return_value = utils.FakedResponse(content=CREATE_DEMAND_RESPONSE, status_code=201)
291
    mocked_request.return_value = tests.utils.FakedResponse(content=CREATE_DEMAND_RESPONSE, status_code=201)
290 292
    demand = {
291 293
        'company': '99',
292 294
        'service': '11',
......
325 327
    assert response.json['data']['demand_id'] == '000000000001234'
326 328

  
327 329
    # mock invalid AS-TECH response
328
    mocked_request.return_value = utils.FakedResponse(content='{"foo":"bar"}', status_code=200)
330
    mocked_request.return_value = tests.utils.FakedResponse(content='{"foo":"bar"}', status_code=200)
329 331
    response = app.post_json(endpoint, params=demand, status=200)
330 332
    assert mocked_request.call_count == 2
331 333
    assert response.json['err'] == 1
......
342 344
        "generic-endpoint",
343 345
        kwargs={"connector": "astech", "slug": setup.slug, "endpoint": "add-document"},
344 346
    )
345
    mocked_request.return_value = utils.FakedResponse(content=ADD_DOCUMENT_RESPONSE, status_code=201)
347
    mocked_request.return_value = tests.utils.FakedResponse(content=ADD_DOCUMENT_RESPONSE, status_code=201)
346 348
    document = {
347 349
        'demand_id': '000000000001234',
348 350
        'title': 'test document',
......
373 375
        "generic-endpoint",
374 376
        kwargs={"connector": "astech", "slug": setup.slug, "endpoint": "demand-position"},
375 377
    )
376
    mocked_request.return_value = utils.FakedResponse(content=POSITION_RESPONSE, status_code=200)
378
    mocked_request.return_value = tests.utils.FakedResponse(content=POSITION_RESPONSE, status_code=200)
377 379
    response = app.get(endpoint + '?demand_id=000000000001234', status=200)
378 380
    assert mocked_request.call_count == 1
379 381
    assert mocked_request.call_args[0][0] == 'get'
......
388 390
    }
389 391

  
390 392
    # invalid AS-TECH response
391
    mocked_request.return_value = utils.FakedResponse(content='{"foo":"bar"}', status_code=200)
393
    mocked_request.return_value = tests.utils.FakedResponse(content='{"foo":"bar"}', status_code=200)
392 394
    response = app.get(endpoint + '?demand_id=000000000001234', status=200)
393 395
    assert mocked_request.call_count == 2
394 396
    assert response.json['err'] == 1
......
403 405
        "generic-endpoint",
404 406
        kwargs={"connector": "astech", "slug": setup.slug, "endpoint": "demand-all-positions"},
405 407
    )
406
    mocked_request.return_value = utils.FakedResponse(content=POSITIONS_RESPONSE, status_code=200)
408
    mocked_request.return_value = tests.utils.FakedResponse(content=POSITIONS_RESPONSE, status_code=200)
407 409
    response = app.get(endpoint, status=200)
408 410
    assert mocked_request.call_count == 1
409 411
    assert mocked_request.call_args[0][0] == 'get'
tests/test_astregs.py
6 6

  
7 7
import mock
8 8
import pytest
9
import utils
10 9
from django.utils.encoding import force_bytes, force_str, force_text
11 10
from django.utils.http import urlencode
12 11
from requests import Request
13 12
from requests.exceptions import ConnectionError
14 13

  
14
import tests.utils
15 15
from passerelle.apps.astregs.models import AstreGS, Link
16 16

  
17 17
BASE_URL = 'https://test-ws-astre-gs.departement06.fr/axis2/services/'
......
57 57

  
58 58
@pytest.fixture
59 59
def connector(db):
60
    return utils.make_resource(
60
    return tests.utils.make_resource(
61 61
        AstreGS,
62 62
        title='Test',
63 63
        slug='test',
tests/test_atos_genesys.py
3 3
import os
4 4

  
5 5
import pytest
6
import utils
7 6
from django.utils.http import urlencode
8 7

  
8
import tests.utils
9 9
from passerelle.apps.atos_genesys.models import Link, Resource
10 10

  
11 11
FAKE_URL = 'https://sirus.fr/'
......
13 13

  
14 14
@pytest.fixture
15 15
def genesys(db):
16
    return utils.make_resource(
16
    return tests.utils.make_resource(
17 17
        Resource, title='Test 1', slug='test1', description='Connecteur de test', webservice_base_url=FAKE_URL
18 18
    )
19 19

  
......
23 23
    response = open(
24 24
        os.path.join(os.path.dirname(__file__), 'data', 'genesys_select_codifications.xml')
25 25
    ).read()
26
    with utils.mock_url(FAKE_URL, response) as mock:
26
    with tests.utils.mock_url(FAKE_URL, response) as mock:
27 27
        yield mock
28 28

  
29 29

  
......
43 43

  
44 44

  
45 45
def test_ws_categories(app, genesys, mock_codifications_ok):
46
    url = utils.generic_endpoint_url('atos-genesys', 'codifications', slug=genesys.slug)
46
    url = tests.utils.generic_endpoint_url('atos-genesys', 'codifications', slug=genesys.slug)
47 47
    response = app.get(url)
48 48
    assert response.json['err'] == 0
49 49
    assert response.json['data']
......
51 51

  
52 52

  
53 53
def test_ws_codifications(app, genesys, mock_codifications_ok):
54
    url = utils.generic_endpoint_url('atos-genesys', 'codifications', slug=genesys.slug)
54
    url = tests.utils.generic_endpoint_url('atos-genesys', 'codifications', slug=genesys.slug)
55 55
    url += '/MOT_APA/'
56 56
    response = app.get(url)
57 57
    assert response.json['err'] == 0
......
64 64

  
65 65
    cache.clear()
66 66

  
67
    url = utils.generic_endpoint_url('atos-genesys', 'codifications', slug=genesys.slug)
67
    url = tests.utils.generic_endpoint_url('atos-genesys', 'codifications', slug=genesys.slug)
68 68
    url += '/MOT_APA/'
69 69
    response = app.get(url)
70 70
    assert response.json['err'] == 1
......
77 77

  
78 78

  
79 79
def test_ws_link_unknown_appairage(app, genesys):
80
    url = utils.generic_endpoint_url('atos-genesys', 'link', slug=genesys.slug)
81
    with utils.mock_url(FAKE_URL, RESPONSE_UNKNOWN_LOGIN):
80
    url = tests.utils.generic_endpoint_url('atos-genesys', 'link', slug=genesys.slug)
81
    with tests.utils.mock_url(FAKE_URL, RESPONSE_UNKNOWN_LOGIN):
82 82
        response = app.post(
83 83
            url
84 84
            + '?'
......
99 99

  
100 100

  
101 101
def test_ws_link_created(app, genesys):
102
    url = utils.generic_endpoint_url('atos-genesys', 'link', slug=genesys.slug)
102
    url = tests.utils.generic_endpoint_url('atos-genesys', 'link', slug=genesys.slug)
103 103
    assert Link.objects.count() == 0
104
    with utils.mock_url(FAKE_URL, RESPONSE_CREATED):
104
    with tests.utils.mock_url(FAKE_URL, RESPONSE_CREATED):
105 105
        response = app.post(
106 106
            url
107 107
            + '?'
......
115 115
    assert response.json['new']
116 116
    assert Link.objects.filter(name_id='zob', id_per='789', resource=genesys).count() == 1
117 117

  
118
    with utils.mock_url(FAKE_URL, RESPONSE_SELECT_USAGER):
119
        dossiers_url = utils.generic_endpoint_url('atos-genesys', 'dossiers', slug=genesys.slug)
118
    with tests.utils.mock_url(FAKE_URL, RESPONSE_SELECT_USAGER):
119
        dossiers_url = tests.utils.generic_endpoint_url('atos-genesys', 'dossiers', slug=genesys.slug)
120 120
        response = app.get(
121 121
            dossiers_url
122 122
            + '?'
......
127 127
            )
128 128
        )
129 129

  
130
    url = utils.generic_endpoint_url('atos-genesys', 'unlink', slug=genesys.slug)
130
    url = tests.utils.generic_endpoint_url('atos-genesys', 'unlink', slug=genesys.slug)
131 131
    response = app.post(
132 132
        url
133 133
        + '?'
......
151 151
def test_ws_dossiers(app, genesys):
152 152
    link = Link.objects.create(resource=genesys, name_id='zob', id_per='1234')
153 153

  
154
    url = utils.generic_endpoint_url('atos-genesys', 'dossiers', slug=genesys.slug)
155
    with utils.mock_url(FAKE_URL, RESPONSE_SELECT_USAGER):
154
    url = tests.utils.generic_endpoint_url('atos-genesys', 'dossiers', slug=genesys.slug)
155
    with tests.utils.mock_url(FAKE_URL, RESPONSE_SELECT_USAGER):
156 156
        response = app.get(
157 157
            url
158 158
            + '?'
......
177 177

  
178 178
    link2 = Link.objects.create(resource=genesys, name_id='zob', id_per='4567')
179 179

  
180
    with utils.mock_url(FAKE_URL, RESPONSE_SELECT_USAGER):
180
    with tests.utils.mock_url(FAKE_URL, RESPONSE_SELECT_USAGER):
181 181
        response = app.get(
182 182
            url
183 183
            + '?'
......
199 199
        assert response.json['data'][1]['id'] == str(link2.id)
200 200
        assert response.json['data'][1]['text'] == u'%s - John DOE' % link2.id_per
201 201

  
202
    with utils.mock_url(FAKE_URL, RESPONSE_SELECT_USAGER):
202
    with tests.utils.mock_url(FAKE_URL, RESPONSE_SELECT_USAGER):
203 203
        response = app.get(
204 204
            url
205 205
            + '?'
......
305 305

  
306 306

  
307 307
def test_ws_search(app, genesys):
308
    url = utils.generic_endpoint_url('atos-genesys', 'search', slug=genesys.slug)
308
    url = tests.utils.generic_endpoint_url('atos-genesys', 'search', slug=genesys.slug)
309 309

  
310
    with utils.mock_url(
310
    with tests.utils.mock_url(
311 311
        FAKE_URL + 'WSUsagerPublik/services/PublikService/chercheBeneficiaire', RESPONSE_SEARCH
312 312
    ):
313
        with utils.mock_url(
313
        with tests.utils.mock_url(
314 314
            FAKE_URL + 'WSUsagerPublik/services/PublikService/selectUsager', RESPONSE_SELECT_USAGER
315 315
        ):
316 316
            response = app.get(
......
360 360
        },
361 361
    ]
362 362

  
363
    with utils.mock_url(
363
    with tests.utils.mock_url(
364 364
        FAKE_URL + 'WSUsagerPublik/services/PublikService/chercheBeneficiaire', RESPONSE_SEARCH
365 365
    ):
366
        with utils.mock_url(
366
        with tests.utils.mock_url(
367 367
            FAKE_URL + 'WSUsagerPublik/services/PublikService/selectUsager', RESPONSE_SELECT_USAGER
368 368
        ):
369 369
            response = app.get(
......
381 381
            assert response.json['err'] == 1
382 382
            assert response.json['err_desc'] == 'not-found'
383 383

  
384
    with utils.mock_url(
384
    with tests.utils.mock_url(
385 385
        FAKE_URL + 'WSUsagerPublik/services/PublikService/chercheBeneficiaire', RESPONSE_SEARCH
386 386
    ):
387
        with utils.mock_url(
387
        with tests.utils.mock_url(
388 388
            FAKE_URL + 'WSUsagerPublik/services/PublikService/selectUsager', RESPONSE_SELECT_USAGER
389 389
        ):
390 390
            response = app.get(
......
401 401
            assert response.json['err'] == 1
402 402
            assert response.json['err_desc'] == 'not-found'
403 403

  
404
    with utils.mock_url(
404
    with tests.utils.mock_url(
405 405
        FAKE_URL + 'WSUsagerPublik/services/PublikService/chercheBeneficiaire', RESPONSE_SEARCH
406 406
    ):
407
        with utils.mock_url(
407
        with tests.utils.mock_url(
408 408
            FAKE_URL + 'WSUsagerPublik/services/PublikService/selectUsager',
409 409
            RESPONSE_SELECT_USAGER_NO_CONTACTS,
410 410
        ):
......
424 424

  
425 425

  
426 426
def test_ws_link_by_id_per(app, genesys):
427
    url = utils.generic_endpoint_url('atos-genesys', 'link-by-id-per', slug=genesys.slug)
427
    url = tests.utils.generic_endpoint_url('atos-genesys', 'link-by-id-per', slug=genesys.slug)
428 428

  
429 429
    assert Link.objects.count() == 0
430
    with utils.mock_url(
430
    with tests.utils.mock_url(
431 431
        FAKE_URL + 'WSUsagerPublik/services/PublikService/selectUsager', RESPONSE_SELECT_USAGER
432 432
    ):
433 433
        response = app.post(
......
448 448
    assert data['new']
449 449
    assert data['link_id'] == link.pk
450 450

  
451
    url = utils.generic_endpoint_url('atos-genesys', 'search', slug=genesys.slug)
451
    url = tests.utils.generic_endpoint_url('atos-genesys', 'search', slug=genesys.slug)
452 452

  
453
    with utils.mock_url(
453
    with tests.utils.mock_url(
454 454
        FAKE_URL + 'WSUsagerPublik/services/PublikService/chercheBeneficiaire', RESPONSE_SEARCH
455 455
    ):
456
        with utils.mock_url(
456
        with tests.utils.mock_url(
457 457
            FAKE_URL + 'WSUsagerPublik/services/PublikService/selectUsager', RESPONSE_SELECT_USAGER
458 458
        ):
459 459
            response = app.get(
tests/test_availability.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3 3
import pytest
4
import utils
5 4
from httmock import HTTMock, all_requests
6 5

  
6
import tests.utils
7 7
from passerelle.apps.feeds.models import Feed
8 8

  
9 9
FEED_EXAMPLE = u"""<?xml version="1.0" encoding="UTF-8"?>
......
42 42

  
43 43
@pytest.fixture
44 44
def connector(db):
45
    return utils.setup_access_rights(Feed.objects.create(slug='test', url='http://example.net/'))
45
    return tests.utils.setup_access_rights(Feed.objects.create(slug='test', url='http://example.net/'))
46 46

  
47 47

  
48 48
@all_requests
tests/test_base_adresse.py
6 6

  
7 7
import mock
8 8
import pytest
9
import utils
10 9
from django.core.management import call_command
11 10
from django.core.management.base import CommandError
12 11
from django.utils.six.moves.urllib.parse import urljoin
13 12
from requests.exceptions import ConnectionError, HTTPError
14 13

  
14
import tests.utils
15 15
from passerelle.apps.base_adresse.models import (
16 16
    AddressCacheModel,
17 17
    BaseAdresse,
......
88 88

  
89 89
@pytest.fixture
90 90
def base_adresse(db):
91
    return utils.setup_access_rights(BaseAdresse.objects.create(slug='base-adresse', zipcode='73'))
91
    return tests.utils.setup_access_rights(BaseAdresse.objects.create(slug='base-adresse', zipcode='73'))
92 92

  
93 93

  
94 94
@pytest.fixture
95 95
def base_adresse_97x(db):
96
    return utils.setup_access_rights(BaseAdresse.objects.create(slug='base-adresse-97x', zipcode='97425'))
96
    return tests.utils.setup_access_rights(
97
        BaseAdresse.objects.create(slug='base-adresse-97x', zipcode='97425')
98
    )
97 99

  
98 100

  
99 101
@pytest.fixture
100 102
def base_adresse_corsica(db):
101
    return utils.setup_access_rights(BaseAdresse.objects.create(slug='base-adresse', zipcode='20000, 20100 '))
103
    return tests.utils.setup_access_rights(
104
        BaseAdresse.objects.create(slug='base-adresse', zipcode='20000, 20100 ')
105
    )
102 106

  
103 107

  
104 108
@pytest.fixture
105 109
def base_adresse_multiple(db):
106
    return utils.setup_access_rights(
110
    return tests.utils.setup_access_rights(
107 111
        BaseAdresse.objects.create(slug='base-adresse', zipcode='73, 73100, 97425,20000 ')
108 112
    )
109 113

  
110 114

  
111 115
@pytest.fixture
112 116
def base_adresse_coordinates(db):
113
    return utils.setup_access_rights(
117
    return tests.utils.setup_access_rights(
114 118
        BaseAdresse.objects.create(slug='base-adresse', latitude=1.2, longitude=2.1)
115 119
    )
116 120

  
......
184 188

  
185 189
@mock.patch('passerelle.utils.Request.get')
186 190
def test_base_adresse_search(mocked_get, app, base_adresse):
187
    endpoint = utils.generic_endpoint_url('base-adresse', 'search', slug=base_adresse.slug)
191
    endpoint = tests.utils.generic_endpoint_url('base-adresse', 'search', slug=base_adresse.slug)
188 192
    assert endpoint == '/base-adresse/base-adresse/search'
189
    mocked_get.return_value = utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
193
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
190 194
    resp = app.get(endpoint, params={'q': 'plop'}, status=200)
191 195
    data = resp.json[0]
192 196
    assert data['lat'] == '47.474633'
......
198 202
def test_base_adresse_search_path(mocked_get, app, base_adresse):
199 203
    base_adresse.service_url = 'http://example.net/path/'
200 204
    base_adresse.save()
201
    endpoint = utils.generic_endpoint_url('base-adresse', 'search', slug=base_adresse.slug)
202
    mocked_get.return_value = utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
205
    endpoint = tests.utils.generic_endpoint_url('base-adresse', 'search', slug=base_adresse.slug)
206
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
203 207
    resp = app.get(endpoint, params={'q': 'plop'}, status=200)
204 208
    assert mocked_get.call_args[0][0].startswith('http://example.net/path/search/?')
205 209
    data = resp.json[0]
......
257 261
    def raise_for_status():
258 262
        raise HTTPError("400 Client Error: Bad Request for url: xxx")
259 263

  
260
    response = utils.FakedResponse(content=json.dumps({'title': 'error'}), status_code=400)
264
    response = tests.utils.FakedResponse(content=json.dumps({'title': 'error'}), status_code=400)
261 265
    response.raise_for_status = raise_for_status
262 266
    mocked_get.return_value = response
263 267
    resp = app.get('/base-adresse/%s/search' % base_adresse.slug, params={'q': 'plop'}, status=200)
......
309 313
        }
310 314
    )
311 315
    faked_content = json.dumps(content)
312
    mocked_get.return_value = utils.FakedResponse(content=faked_content, status_code=200)
316
    mocked_get.return_value = tests.utils.FakedResponse(content=faked_content, status_code=200)
313 317
    resp = app.get('/base-adresse/%s/reverse?lon=-0.593775&lat=47.474633' % base_adresse.slug)
314 318
    data = resp.json
315 319
    assert data['address']['road'] == 'Rue Roger Halope'
......
317 321

  
318 322
@mock.patch('passerelle.utils.Request.get')
319 323
def test_base_adresse_reverse_path(mocked_get, app, base_adresse):
320
    mocked_get.return_value = utils.FakedResponse(content=json.dumps({'features': []}), status_code=200)
324
    mocked_get.return_value = tests.utils.FakedResponse(content=json.dumps({'features': []}), status_code=200)
321 325
    base_adresse.service_url = 'http://example.net/path/'
322 326
    base_adresse.save()
323 327
    app.get('/base-adresse/%s/reverse?lon=-0.593775&lat=47.474633' % base_adresse.slug)
......
434 438
def test_base_adresse_command_update(mocked_get, db, base_adresse):
435 439
    filepath = os.path.join(os.path.dirname(__file__), 'data', 'update_streets_test.gz')
436 440
    with open(filepath, 'rb') as ban_file:
437
        mocked_get.return_value = utils.FakedResponse(content=ban_file.read(), status_code=200)
441
        mocked_get.return_value = tests.utils.FakedResponse(content=ban_file.read(), status_code=200)
438 442
    call_command('cron', 'daily')
439 443
    mocked_get.assert_called_once_with(
440 444
        'https://adresse.data.gouv.fr/data/ban/adresses/latest/addok/adresses-addok-73.ndjson.gz'
......
462 466
    base_adresse.update_api_geo_data = lambda: None
463 467
    filepath = os.path.join(os.path.dirname(__file__), 'data', 'update_streets_test.gz')
464 468
    with open(filepath, 'rb') as ban_file:
465
        mocked_get.return_value = utils.FakedResponse(content=ban_file.read(), status_code=200)
469
        mocked_get.return_value = tests.utils.FakedResponse(content=ban_file.read(), status_code=200)
466 470
    # check the job added at save() downloads streets
467 471
    base_adresse.jobs()
468 472
    mocked_get.assert_called_once_with(
......
488 492
    base_adresse_97x.update_api_geo_data = lambda: None
489 493
    filepath = os.path.join(os.path.dirname(__file__), 'data', 'update_streets_test.gz')
490 494
    with open(filepath, 'rb') as ban_file:
491
        mocked_get.return_value = utils.FakedResponse(content=ban_file.read(), status_code=200)
495
        mocked_get.return_value = tests.utils.FakedResponse(content=ban_file.read(), status_code=200)
492 496
    call_command('cron', 'daily')
493 497
    mocked_get.assert_called_once_with(
494 498
        'https://adresse.data.gouv.fr/data/ban/adresses/latest/addok/adresses-addok-974.ndjson.gz'
......
502 506
    base_adresse_corsica.update_api_geo_data = lambda: None
503 507
    filepath = os.path.join(os.path.dirname(__file__), 'data', 'update_streets_test.gz')
504 508
    with open(filepath, 'rb') as ban_file:
505
        mocked_get.return_value = utils.FakedResponse(content=ban_file.read(), status_code=200)
509
        mocked_get.return_value = tests.utils.FakedResponse(content=ban_file.read(), status_code=200)
506 510
    call_command('cron', 'daily')
507 511
    assert mocked_get.call_count == 2
508 512
    mocked_get.assert_any_call(
......
520 524
    base_adresse_multiple.update_api_geo_data = lambda: None
521 525
    filepath = os.path.join(os.path.dirname(__file__), 'data', 'update_streets_test.gz')
522 526
    with open(filepath, 'rb') as ban_file:
523
        mocked_get.return_value = utils.FakedResponse(content=ban_file.read(), status_code=200)
527
        mocked_get.return_value = tests.utils.FakedResponse(content=ban_file.read(), status_code=200)
524 528
    call_command('cron', 'daily')
525 529
    assert mocked_get.call_count == 4
526 530
    mocked_get.assert_any_call(
......
691 695
@mock.patch('passerelle.utils.Request.get')
692 696
def test_base_adresse_command_update_geo(mocked_get, db, base_adresse, base_adresse_97x):
693 697
    return_values = [
694
        utils.FakedResponse(content=content, status_code=200)
698
        tests.utils.FakedResponse(content=content, status_code=200)
695 699
        for content in (FAKE_API_GEO_REGIONS, FAKE_API_GEO_DEPARTMENTS, FAKE_API_GEO) * 2
696 700
    ]
697 701
    mocked_get.side_effect = return_values
......
758 762
@mock.patch('passerelle.utils.Request.get')
759 763
def test_base_adresse_command_update_geo_delete(mocked_get, db, base_adresse):
760 764
    return_values = [
761
        utils.FakedResponse(content=content, status_code=200)
765
        tests.utils.FakedResponse(content=content, status_code=200)
762 766
        for content in (FAKE_API_GEO_REGIONS, FAKE_API_GEO_DEPARTMENTS, FAKE_API_GEO)
763 767
    ]
764 768
    mocked_get.side_effect = return_values
......
767 771

  
768 772
    new_fake_api_geo = json.dumps([FAKE_API_GEO_LIST[1]])
769 773
    return_values = [
770
        utils.FakedResponse(content=content, status_code=200)
774
        tests.utils.FakedResponse(content=content, status_code=200)
771 775
        for content in (FAKE_API_GEO_REGIONS, FAKE_API_GEO_DEPARTMENTS, new_fake_api_geo)
772 776
    ]
773 777
    mocked_get.side_effect = return_values
......
779 783
@mock.patch('passerelle.utils.Request.get')
780 784
def test_base_adresse_command_job_update_geo(mocked_get, db, base_adresse):
781 785
    return_values = [
782
        utils.FakedResponse(content=content, status_code=200)
786
        tests.utils.FakedResponse(content=content, status_code=200)
783 787
        for content in (FAKE_API_GEO_REGIONS, FAKE_API_GEO_DEPARTMENTS, FAKE_API_GEO)
784 788
    ]
785 789
    mocked_get.side_effect = return_values
......
796 800
@pytest.mark.usefixtures('mock_update_streets')
797 801
@mock.patch('passerelle.utils.Request.get')
798 802
def test_base_adresse_command_update_geo_invalid(mocked_get, db, base_adresse):
799
    mocked_get.return_value = utils.FakedResponse(content='{}', status_code=200)
803
    mocked_get.return_value = tests.utils.FakedResponse(content='{}', status_code=200)
800 804
    with pytest.raises(CommandError):
801 805
        call_command('cron', 'daily')
802 806
    assert mocked_get.call_count == 1
803 807
    assert not RegionModel.objects.exists()
804 808

  
805
    mocked_get.return_value = utils.FakedResponse(content=FAKE_API_GEO, status_code=500)
809
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKE_API_GEO, status_code=500)
806 810
    call_command('cron', 'daily')
807 811
    assert mocked_get.call_count == 4
808 812
    assert not RegionModel.objects.exists()
809 813

  
810
    mocked_get.return_value = utils.FakedResponse(content='not-json', status_code=200)
814
    mocked_get.return_value = tests.utils.FakedResponse(content='not-json', status_code=200)
811 815
    call_command('cron', 'daily')
812 816
    assert mocked_get.call_count == 7
813 817
    assert not RegionModel.objects.exists()
......
831 835

  
832 836
@mock.patch('passerelle.utils.Request.get')
833 837
def test_base_adresse_addresses(mocked_get, app, base_adresse):
834
    endpoint = utils.generic_endpoint_url('base-adresse', 'addresses', slug=base_adresse.slug)
838
    endpoint = tests.utils.generic_endpoint_url('base-adresse', 'addresses', slug=base_adresse.slug)
835 839
    assert endpoint == '/base-adresse/base-adresse/addresses'
836
    mocked_get.return_value = utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
840
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
837 841
    resp = app.get(endpoint, params={'q': 'plop'}, status=200)
838 842
    data = resp.json['data'][0]
839 843
    assert data['lat'] == '47.474633'
......
953 957

  
954 958
@mock.patch('passerelle.utils.Request.get')
955 959
def test_base_adresse_addresses_data_change(mocked_get, app, base_adresse):
956
    endpoint = utils.generic_endpoint_url('base-adresse', 'addresses', slug=base_adresse.slug)
957
    mocked_get.return_value = utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
960
    endpoint = tests.utils.generic_endpoint_url('base-adresse', 'addresses', slug=base_adresse.slug)
961
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
958 962

  
959 963
    # one user selects an address
960 964
    resp = app.get(endpoint, params={'q': 'plop'}, status=200)
......
964 968
    # another requests the same while upstream data has been updated
965 969
    new_content = json.loads(FAKED_CONTENT)
966 970
    new_content['features'][0]['properties']['label'] = 'changed'
967
    mocked_get.return_value = utils.FakedResponse(content=json.dumps(new_content), status_code=200)
971
    mocked_get.return_value = tests.utils.FakedResponse(content=json.dumps(new_content), status_code=200)
968 972
    resp = app.get(endpoint, params={'q': 'plop'}, status=200)
969 973

  
970 974
    # first user saves the form, data should not have changed
tests/test_caluire_axel.py
23 23
import freezegun
24 24
import mock
25 25
import pytest
26
import utils
27 26
import xmlschema
28 27

  
28
import tests.utils
29 29
from passerelle.contrib.caluire_axel import schemas
30 30
from passerelle.contrib.caluire_axel.models import CaluireAxel, Link
31 31
from passerelle.contrib.utils.axel import AxelError, OperationResult, json_date_format, xml_date_format
......
47 47

  
48 48
@pytest.fixture
49 49
def resource(db):
50
    return utils.make_resource(
50
    return tests.utils.make_resource(
51 51
        CaluireAxel, slug='test', wsdl_url='http://example.net/AXEL_WS/AxelWS.php?wsdl'
52 52
    )
53 53

  
tests/test_cartads_cs.py
7 7

  
8 8
import mock
9 9
import pytest
10
import utils
11 10
from django.core.files.storage import default_storage
12 11
from django.test import override_settings
13 12
from httmock import HTTMock
14 13

  
14
import tests.utils
15 15
from passerelle.apps.cartads_cs.models import CartaDSCS, CartaDSDossier, CartaDSFile
16 16
from passerelle.base.models import Job
17 17
from passerelle.compat import json_loads
......
19 19

  
20 20
@pytest.fixture
21 21
def connector(db):
22
    return utils.make_resource(
22
    return tests.utils.make_resource(
23 23
        CartaDSCS,
24 24
        title='Test',
25 25
        slug='test',
tests/test_cityweb.py
24 24

  
25 25
import mock
26 26
import pytest
27
import utils
28 27
from django.core.files.storage import default_storage
29 28
from lxml import etree
30 29
from lxml import objectify as xobject
31 30

  
31
import tests.utils
32 32
from passerelle.apps.cityweb.cityweb import DateType
33 33
from passerelle.apps.cityweb.models import CityWeb
34 34
from passerelle.utils.jsonresponse import APIError
......
46 46

  
47 47
@pytest.fixture
48 48
def setup(db):
49
    return utils.setup_access_rights(CityWeb.objects.create(slug='test'))
49
    return tests.utils.setup_access_rights(CityWeb.objects.create(slug='test'))
50 50

  
51 51

  
52 52
PAYLOAD = [
tests/test_clicrdv.py
3 3
from django.contrib.contenttypes.models import ContentType
4 4
from django.utils.six.moves.urllib import parse as urlparse
5 5
from requests.exceptions import HTTPError
6
from test_manager import login
7 6

  
8 7
from passerelle.apps.clicrdv.models import ClicRdv
9 8
from passerelle.base.models import AccessRight, ApiUser
9
from tests.test_manager import login
10 10

  
11 11

  
12 12
@pytest.fixture
tests/test_cmis.py
20 20
from django.utils.encoding import force_bytes, force_text
21 21
from django.utils.six.moves.urllib import error as urllib2
22 22
from mock import Mock, call
23
from test_manager import login
24 23

  
25 24
from passerelle.apps.cmis.models import CmisConnector
26 25
from passerelle.base.models import AccessRight, ApiUser, ResourceLog
26
from tests.test_manager import login
27 27

  
28 28

  
29 29
def b64encode(content):
tests/test_cryptor.py
3 3
import base64
4 4

  
5 5
import pytest
6
import utils
7 6
from django.contrib.contenttypes.models import ContentType
8 7
from django.core.exceptions import ValidationError
9 8
from django.utils.encoding import force_text
10 9

  
10
import tests.utils
11 11
from passerelle.apps.cryptor.models import CryptedFile, Cryptor
12 12
from passerelle.base.models import AccessRight, ApiUser
13 13

  
......
77 77

  
78 78

  
79 79
def test_cryptor_restricted_access(app, cryptor):
80
    endpoint = utils.generic_endpoint_url('cryptor', 'file-encrypt', slug=cryptor.slug)
80
    endpoint = tests.utils.generic_endpoint_url('cryptor', 'file-encrypt', slug=cryptor.slug)
81 81
    assert endpoint == '/cryptor/test/file-encrypt'
82 82
    resp = app.get(endpoint, status=405)
83 83
    resp = app.post_json(endpoint, params={"foo": "bar"}, status=403)
84 84
    assert resp.json['err'] == 1
85 85
    assert 'PermissionDenied' in resp.json['err_class']
86 86

  
87
    endpoint = utils.generic_endpoint_url('cryptor', 'file-decrypt', slug=cryptor.slug) + '/uuid'
87
    endpoint = tests.utils.generic_endpoint_url('cryptor', 'file-decrypt', slug=cryptor.slug) + '/uuid'
88 88
    assert endpoint == '/cryptor/test/file-decrypt/uuid'
89 89
    resp = app.post_json(endpoint, params={"foo": "bar"}, status=405)
90 90
    resp = app.get(endpoint, status=403)
......
103 103
        codename='can_decrypt', apiuser=api, resource_type=obj_type, resource_pk=cryptor.pk
104 104
    )
105 105

  
106
    endpoint = utils.generic_endpoint_url('cryptor', 'file-encrypt', slug=cryptor.slug)
106
    endpoint = tests.utils.generic_endpoint_url('cryptor', 'file-encrypt', slug=cryptor.slug)
107 107
    for bad_payload in (
108 108
        'error',
109 109
        {"foo": "bar"},
......
115 115
        resp = app.post_json(endpoint, params=bad_payload, status=400)
116 116
        assert resp.json['err'] == 1
117 117

  
118
    endpoint = utils.generic_endpoint_url('cryptor', 'file-decrypt', slug=cryptor.slug)
118
    endpoint = tests.utils.generic_endpoint_url('cryptor', 'file-decrypt', slug=cryptor.slug)
119 119
    endpoint = endpoint + '/bad-uuid'
120 120
    resp = app.get(endpoint, status=404)
121 121

  
......
131 131
    )
132 132

  
133 133
    # encrypt
134
    endpoint = utils.generic_endpoint_url('cryptor', 'file-encrypt', slug=cryptor.slug)
134
    endpoint = tests.utils.generic_endpoint_url('cryptor', 'file-encrypt', slug=cryptor.slug)
135 135
    content = force_text(base64.b64encode(b'this is foo and bar'))
136 136
    payload = {"file": {"filename": "foo.txt", "content_type": "text/plain", "content": content}}
137 137

  
......
161 161
    assert resp.json['err_desc'] == 'missing public key'
162 162

  
163 163
    # decrypt
164
    endpoint = utils.generic_endpoint_url('cryptor', 'file-decrypt', slug=cryptor.slug)
164
    endpoint = tests.utils.generic_endpoint_url('cryptor', 'file-decrypt', slug=cryptor.slug)
165 165
    endpoint = endpoint + '/' + str(cfile.uuid)
166 166
    resp = app.get(endpoint, status=200)
167 167
    assert resp.content_type == 'text/plain'
tests/test_csv_datasource.py
37 37
from django.utils.six import StringIO
38 38
from django.utils.six.moves.urllib.parse import urlencode
39 39
from django.utils.timezone import now
40
from test_manager import login
41 40

  
42 41
from passerelle.apps.csvdatasource.models import CsvDataSource, Query, TableRow, upload_to
43 42
from passerelle.base.models import AccessRight, ApiUser
44 43
from passerelle.compat import json_loads
44
from tests.test_manager import login
45 45

  
46 46
data = """121;69981;DELANOUE;Eliot;H
47 47
525;6;DANIEL WILLIAMS;Shanone;F
tests/test_dpark.py
7 7
import mock
8 8
import pytest
9 9
from django.utils.encoding import force_text
10
from utils import make_resource
11 10
from zeep.exceptions import Fault as WebFault
12 11
from zeep.exceptions import TransportError
13 12

  
14 13
from passerelle.contrib.dpark.models import DPark, Pairing
15 14
from passerelle.utils.jsonresponse import APIError
15
from tests.utils import make_resource
16 16

  
17 17
SLUG = 'test'
18 18
WSDL_URL = 'https://example.net/dpark?wsdl'
tests/test_esirius.py
19 19

  
20 20
import httmock
21 21
import pytest
22
import utils
23 22
from Cryptodome.Cipher import DES
24 23
from Cryptodome.Util.Padding import pad, unpad
25 24
from django.utils.encoding import force_bytes
26
from test_manager import login
27 25

  
26
import tests.utils
28 27
from passerelle.apps.esirius.models import ESirius
29 28
from passerelle.utils.jsonresponse import APIError
29
from tests.test_manager import login
30 30

  
31 31
CREATE_APPOINTMENT_PAYLOAD = {
32 32
    'beginDate': '2021-02-24',
......
80 80

  
81 81
@pytest.fixture
82 82
def connector(db):
83
    return utils.setup_access_rights(
83
    return tests.utils.setup_access_rights(
84 84
        ESirius.objects.create(
85 85
            slug='test', secret_id='xxx', secret_key='yyy', base_url='https://esirius.example.net'
86 86
        )
......
88 88

  
89 89

  
90 90
def get_endpoint(name):
91
    return utils.generic_endpoint_url('esirius', name)
91
    return tests.utils.generic_endpoint_url('esirius', name)
92 92

  
93 93

  
94 94
@pytest.mark.freeze_time('2021-01-26 15:13:6.880')  # epoch + 1611673986.88 s
tests/test_esirius_swi.py
18 18

  
19 19
import mock
20 20
import pytest
21
import utils
22 21

  
22
import tests.utils
23 23
from passerelle.contrib.esirius_swi.models import ESiriusSwi
24 24
from passerelle.contrib.esirius_swi.utils import compute_status
25 25

  
......
45 45

  
46 46
@pytest.fixture
47 47
def connector(db):
48
    return utils.setup_access_rights(
48
    return tests.utils.setup_access_rights(
49 49
        ESiriusSwi.objects.create(
50 50
            slug='test', base_url='https://example.org/eSirius/webservices/sitewaitingindicator/'
51 51
        )
tests/test_feeds.py
2 2

  
3 3
import mock
4 4
import pytest
5
import utils
6 5

  
6
import tests.utils
7 7
from passerelle.apps.feeds.models import Feed
8 8

  
9 9
FEED_EXAMPLE = u"""<?xml version="1.0" encoding="UTF-8"?>
......
42 42

  
43 43
@pytest.fixture
44 44
def connector(db):
45
    return utils.setup_access_rights(Feed.objects.create(slug='test', url='http://example.net/'))
45
    return tests.utils.setup_access_rights(Feed.objects.create(slug='test', url='http://example.net/'))
46 46

  
47 47

  
48 48
@mock.patch('passerelle.utils.Request.get')
49 49
def test_feed(mocked_get, app, connector):
50
    mocked_get.return_value = utils.FakedResponse(content=FEED_EXAMPLE, status=200)
51
    endpoint = utils.generic_endpoint_url('feeds', 'json', slug=connector.slug)
50
    mocked_get.return_value = tests.utils.FakedResponse(content=FEED_EXAMPLE, status=200)
51
    endpoint = tests.utils.generic_endpoint_url('feeds', 'json', slug=connector.slug)
52 52
    assert endpoint == '/feeds/test/json'
53 53
    resp = app.get(endpoint)
54 54
    assert resp.json['data']['feed']['title']
tests/test_franceconnect_data.py
18 18
from urllib.parse import parse_qs, urlparse, urlunparse
19 19

  
20 20
import pytest
21
import utils
22
from test_rsa13 import mock_response
23 21

  
22
import tests.utils
24 23
from passerelle.apps.franceconnect_data.models import Resource
24
from tests.test_rsa13 import mock_response
25 25

  
26 26

  
27 27
@pytest.fixture
28 28
def fc(db):
29
    return utils.make_resource(
29
    return tests.utils.make_resource(
30 30
        Resource,
31 31
        slug='test',
32 32
        fc_platform_slug='prod',
tests/test_gdema.py
3 3

  
4 4
import mock
5 5
import pytest
6
import utils
7 6
from django.contrib.contenttypes.models import ContentType
8 7

  
8
import tests.utils
9 9
from passerelle.base.models import AccessRight, ApiUser
10 10
from passerelle.contrib.gdema.models import Gdema
11 11

  
......
68 68

  
69 69

  
70 70
def test_gdema_services_and_typologies(app, gdema):
71
    endpoint = utils.generic_endpoint_url('gdema', 'referentiel', slug=gdema.slug)
71
    endpoint = tests.utils.generic_endpoint_url('gdema', 'referentiel', slug=gdema.slug)
72 72
    assert endpoint == '/gdema/test/referentiel'
73 73
    with mock.patch('passerelle.utils.Request.get') as requests_get:
74
        requests_get.return_value = utils.FakedResponse(content=SERVICES, status_code=200)
74
        requests_get.return_value = tests.utils.FakedResponse(content=SERVICES, status_code=200)
75 75
        resp = app.get(endpoint + '/service/', status=200)
76 76
        assert requests_get.call_count == 1
77 77
        assert requests_get.call_args[0][0] == 'https://gdema.example.net/api/referentiel/service'
......
106 106

  
107 107

  
108 108
def test_gdema_referentiel(app, gdema):
109
    endpoint = utils.generic_endpoint_url('gdema', 'referentiel', slug=gdema.slug)
109
    endpoint = tests.utils.generic_endpoint_url('gdema', 'referentiel', slug=gdema.slug)
110 110
    assert endpoint == '/gdema/test/referentiel'
111 111
    with mock.patch('passerelle.utils.Request.get') as requests_get:
112
        requests_get.return_value = utils.FakedResponse(content=CIVILITY, status_code=200)
112
        requests_get.return_value = tests.utils.FakedResponse(content=CIVILITY, status_code=200)
113 113
        resp = app.get(endpoint + '/civility/', status=200)
114 114
        assert requests_get.call_count == 1
115 115
        assert requests_get.call_args[0][0] == 'https://gdema.example.net/api/referentiel/civility'
......
120 120
        assert resp.json['data'][0]['text'] == 'Monsieur'
121 121

  
122 122
    with mock.patch('passerelle.utils.Request.get') as requests_get:
123
        requests_get.return_value = utils.FakedResponse(content='404', status_code=404)
123
        requests_get.return_value = tests.utils.FakedResponse(content='404', status_code=404)
124 124
        resp = app.get(endpoint + '/nothing/', status=200)
125 125
        assert requests_get.call_count == 1
126 126
        assert requests_get.call_args[0][0] == 'https://gdema.example.net/api/referentiel/nothing'
......
132 132

  
133 133

  
134 134
def test_gdema_get_request(app, gdema):
135
    endpoint = utils.generic_endpoint_url('gdema', 'get-request', slug=gdema.slug)
135
    endpoint = tests.utils.generic_endpoint_url('gdema', 'get-request', slug=gdema.slug)
136 136
    assert endpoint == '/gdema/test/get-request'
137 137
    with mock.patch('passerelle.utils.Request.get') as requests_get:
138
        requests_get.return_value = utils.FakedResponse(content=REQUEST, status_code=200)
138
        requests_get.return_value = tests.utils.FakedResponse(content=REQUEST, status_code=200)
139 139
        resp = app.get(endpoint + '/1/', status=200)
140 140
        assert requests_get.call_count == 1
141 141
        assert requests_get.call_args[0][0] == 'https://gdema.example.net/api/request/1'
......
149 149
        assert resp.json['data']['Handler']['CivilityId'] == '0'
150 150
        assert resp.json['data']['ReceptDate'] == '2006-12-13T00:00:00+01:00'
151 151

  
152
    endpoint = utils.generic_endpoint_url('gdema', 'get-request-state', slug=gdema.slug)
152
    endpoint = tests.utils.generic_endpoint_url('gdema', 'get-request-state', slug=gdema.slug)
153 153
    assert endpoint == '/gdema/test/get-request-state'
154 154
    with mock.patch('passerelle.utils.Request.get') as requests_get:
155
        requests_get.return_value = utils.FakedResponse(content=REQUEST_STATE, status_code=200)
155
        requests_get.return_value = tests.utils.FakedResponse(content=REQUEST_STATE, status_code=200)
156 156
        resp = app.get(endpoint + '/1/', status=200)
157 157
        assert requests_get.call_count == 1
158 158
        assert requests_get.call_args[0][0] == 'https://gdema.example.net/api/request/1/state'
......
162 162

  
163 163

  
164 164
def test_gdema_create_request(app, gdema):
165
    endpoint = utils.generic_endpoint_url('gdema', 'create-request', slug=gdema.slug)
165
    endpoint = tests.utils.generic_endpoint_url('gdema', 'create-request', slug=gdema.slug)
166 166
    assert endpoint == '/gdema/test/create-request'
167 167
    with mock.patch('passerelle.utils.Request.post') as requests_post:
168
        requests_post.return_value = utils.FakedResponse(content=REQUEST, status_code=200)
168
        requests_post.return_value = tests.utils.FakedResponse(content=REQUEST, status_code=200)
169 169
        resp = app.post_json(endpoint + '?raise=1', params=CREATE_INPUT, status=200)
170 170
        assert requests_post.call_count == 1
171 171
        assert requests_post.call_args[0][0] == 'https://gdema.example.net/api/request/create'
tests/test_generic_endpoint.py
25 25

  
26 26
import mock
27 27
import pytest
28
import utils
29 28
from django.contrib.contenttypes.models import ContentType
30 29
from django.urls import reverse
31
from test_manager import login
32 30

  
31
import tests.utils
33 32
from passerelle.apps.api_particulier.models import APIParticulier
34 33
from passerelle.apps.arcgis.models import ArcGIS
35 34
from passerelle.apps.mdel.models import MDEL
......
43 42
)
44 43
from passerelle.contrib.stub_invoices.models import StubInvoicesConnector
45 44
from passerelle.utils.api import endpoint
45
from tests.test_manager import login
46 46

  
47 47

  
48 48
@pytest.fixture
49 49
def mdel(db):
50
    return utils.setup_access_rights(MDEL.objects.create(slug='test'))
50
    return tests.utils.setup_access_rights(MDEL.objects.create(slug='test'))
51 51

  
52 52

  
53 53
@pytest.fixture
54 54
def arcgis(db):
55
    instance = utils.setup_access_rights(ArcGIS.objects.create(slug='test'))
55
    instance = tests.utils.setup_access_rights(ArcGIS.objects.create(slug='test'))
56 56
    instance.set_log_level('DEBUG')
57 57
    return instance
58 58

  
......
91 91
@mock.patch('passerelle.utils.Request.get')
92 92
def test_proxy_logger(mocked_get, caplog, app, arcgis):
93 93
    payload = open(os.path.join(os.path.dirname(__file__), 'data', 'nancy_arcgis', 'sigresponse.json')).read()
94
    mocked_get.return_value = utils.FakedResponse(content=payload, status_code=200)
94
    mocked_get.return_value = tests.utils.FakedResponse(content=payload, status_code=200)
95 95

  
96 96
    # simple logger
97 97
    arcgis.log_evel = 'DEBUG'
......
169 169
@mock.patch('requests.Session.send')
170 170
def test_proxy_logger_transaction_id(mocked_send, app, arcgis):
171 171
    payload = open(os.path.join(os.path.dirname(__file__), 'data', 'nancy_arcgis', 'sigresponse.json')).read()
172
    mocked_send.return_value = utils.FakedResponse(content=payload, status_code=200)
172
    mocked_send.return_value = tests.utils.FakedResponse(content=payload, status_code=200)
173 173
    arcgis.log_evel = 'DEBUG'
174 174
    arcgis.base_url = 'https://example.net/'
175 175
    arcgis.save()
......
185 185

  
186 186
@mock.patch('passerelle.utils.Request.patch')
187 187
def test_proxy_logger_on_405(mocked_patch, caplog, app, arcgis):
188
    mocked_patch.return_value = utils.FakedResponse(status_code=500)
188
    mocked_patch.return_value = tests.utils.FakedResponse(status_code=500)
189 189

  
190 190
    # simple logger
191 191
    arcgis.log_evel = 'WARNING'
......
716 716

  
717 717
    from passerelle.apps.arcgis.models import ArcGIS
718 718

  
719
    resource = utils.make_resource(ArcGIS, base_url='https://example.com/', slug='gis', verify_cert=True)
719
    resource = tests.utils.make_resource(
720
        ArcGIS, base_url='https://example.com/', slug='gis', verify_cert=True
721
    )
720 722
    with pytest.raises(SSLError):
721 723
        resource.requests.get(httpbin_secure.join('/get/'))
722 724
    resource.verify_cert = False
......
1030 1032

  
1031 1033

  
1032 1034
def test_response_schema(db, app):
1033
    utils.make_resource(APIParticulier, slug='test', platform='test', api_key='xxx')
1035
    tests.utils.make_resource(APIParticulier, slug='test', platform='test', api_key='xxx')
1034 1036
    response = app.get('/api-particulier/test/')
1035 1037
    assert 'nombrePersonnesCharge' in response
1036 1038

  
tests/test_gesbac.py
21 21
import pytest
22 22
from django.utils.encoding import force_bytes, force_str, force_text
23 23
from django.utils.timezone import now
24
from utils import make_resource
25 24

  
26 25
from passerelle.apps.gesbac.models import Form, Gesbac
27 26
from passerelle.utils import SFTP
27
from tests.utils import make_resource
28 28

  
29 29

  
30 30
@pytest.fixture
tests/test_greco.py
20 20

  
21 21
import mock
22 22
import pytest
23
import utils
24 23
from django.contrib.contenttypes.models import ContentType
25 24
from django.urls import reverse
26 25
from django.utils.encoding import force_str
27 26

  
27
import tests.utils
28 28
from passerelle.base.models import AccessRight, ApiUser
29 29
from passerelle.contrib.greco.models import Greco
30 30

  
......
46 46

  
47 47

  
48 48
def fake_xml_response(basename):
49
    return utils.FakedResponse(
49
    return tests.utils.FakedResponse(
50 50
        content=get_xml_file(basename),
51 51
        status_code=200,
52 52
        headers={'Content-Type': 'text/xml'},
53 53
    )
54 54

  
55 55

  
56
TOKEN = utils.FakedResponse(
56
TOKEN = tests.utils.FakedResponse(
57 57
    content=get_json_file('token'),
58 58
    status_code=200,
59 59
    headers={'Content-Type': 'application/json'},
60 60
)
61
RESP_503 = utils.FakedResponse(content='Service Unavailable', status_code=503)
61
RESP_503 = tests.utils.FakedResponse(content='Service Unavailable', status_code=503)
62 62
PING = fake_xml_response('ping')
63 63
CREATE_OK = fake_xml_response('create_ok')
64 64
CREATE_KO = fake_xml_response('create_ko')
tests/test_grenoble_gru.py
21 21
import mock
22 22
import pytest
23 23
import six
24
import utils
25 24
from django.urls import reverse
26 25

  
26
import tests.utils
27 27
from passerelle.contrib.grenoble_gru.models import GrenobleGRU
28 28

  
29 29

  
30 30
@pytest.fixture
31 31
def setup(db):
32
    return utils.setup_access_rights(
32
    return tests.utils.setup_access_rights(
33 33
        GrenobleGRU.objects.create(slug='test', base_url='https://itvvoirie-test.lametro.fr')
34 34
    )
35 35

  
......
120 120
@pytest.fixture(params=['01', '02', '10', '20', '21', '23', '4242'])
121 121
def remote_response(request):
122 122
    text = six.text_type(request.param)
123
    return utils.FakedResponse(index=request.param_index, text=text)
123
    return tests.utils.FakedResponse(index=request.param_index, text=text)
124 124

  
125 125

  
126 126
def test_contact_mode_typologies_list_with_invalid_xml(app, setup):
tests/test_isere_ens.py
21 21

  
22 22
import mock
23 23
import pytest
24
import utils
25 24
from django.urls import reverse
26 25

  
26
import tests.utils
27 27
from passerelle.contrib.isere_ens.models import API_VERSION, IsereENS
28 28
from passerelle.utils.jsonresponse import APIError
29 29

  
30 30

  
31 31
@pytest.fixture
32 32
def setup(db):
33
    return utils.setup_access_rights(
33
    return tests.utils.setup_access_rights(
34 34
        IsereENS.objects.create(slug="test", base_url="https://ens38.example.net/", token="toktok")
35 35
    )
36 36

  
......
148 148
def test_get_sites(mocked_get, app, setup, api_version):
149 149
    setup.api_version = api_version
150 150
    setup.save()
151
    mocked_get.return_value = utils.FakedResponse(content=SITES_RESPONSE, status_code=200)
151
    mocked_get.return_value = tests.utils.FakedResponse(content=SITES_RESPONSE, status_code=200)
152 152
    endpoint = reverse(
153 153
        "generic-endpoint",
154 154
        kwargs={"connector": "isere-ens", "slug": setup.slug, "endpoint": "sites"},
......
176 176
    response = app.get(endpoint + "?kind=social")
177 177
    assert len(response.json["data"]) == 2
178 178

  
179
    mocked_get.return_value = utils.FakedResponse(content=SD29B_RESPONSE, status_code=200)
179
    mocked_get.return_value = tests.utils.FakedResponse(content=SD29B_RESPONSE, status_code=200)
180 180
    response = app.get(endpoint + "?id=SD29b")
181 181
    assert mocked_get.call_args[0][0].endswith("api/" + api_version + "/site/SD29b")
182 182
    assert len(response.json["data"]) == 1
......
184 184
    assert response.json["data"][0]["dogs"] == "LEASH"
185 185

  
186 186
    # bad response for ENS API
187
    mocked_get.return_value = utils.FakedResponse(content=SITE_404_RESPONSE, status_code=404)
187
    mocked_get.return_value = tests.utils.FakedResponse(content=SITE_404_RESPONSE, status_code=404)
188 188
    response = app.get(endpoint + "?id=SD29x")
189 189
    assert mocked_get.call_args[0][0].endswith("api/" + api_version + "/site/SD29x")
190 190
    assert response.json["err"] == 1
......
192 192
    assert response.json["err_desc"].startswith("error status:404")
193 193
    assert response.json["data"]["status_code"] == 404
194 194
    assert response.json["data"]["json_content"]["message"] == "Site not found with code SD29x"
195
    mocked_get.return_value = utils.FakedResponse(content="crash", status_code=500)
195
    mocked_get.return_value = tests.utils.FakedResponse(content="crash", status_code=500)
196 196
    response = app.get(endpoint + "?id=foo500")
197 197
    assert mocked_get.call_args[0][0].endswith("api/" + api_version + "/site/foo500")
198 198
    assert response.json["err"] == 1
......
200 200
    assert response.json["err_class"].endswith("APIError")
201 201
    assert response.json["data"]["status_code"] == 500
202 202
    assert response.json["data"]["json_content"] is None
203
    mocked_get.return_value = utils.FakedResponse(content=None, status_code=204)
203
    mocked_get.return_value = tests.utils.FakedResponse(content=None, status_code=204)
204 204
    response = app.get(endpoint + "?id=foo204")
205 205
    assert mocked_get.call_args[0][0].endswith("api/" + api_version + "/site/foo204")
206 206
    assert response.json["err"] == 1
207 207
    assert response.json["err_class"].endswith("APIError")
208 208
    assert response.json["err_desc"] == "abnormal empty response"
209
    mocked_get.return_value = utils.FakedResponse(content="not json", status_code=200)
209
    mocked_get.return_value = tests.utils.FakedResponse(content="not json", status_code=200)
210 210
    response = app.get(endpoint + "?id=foo")
211 211
    assert mocked_get.call_args[0][0].endswith("api/" + api_version + "/site/foo")
212 212
    assert response.json["err"] == 1
......
219 219
def test_get_animators(mocked_get, app, setup, api_version):
220 220
    setup.api_version = api_version
221 221
    setup.save()
222
    mocked_get.return_value = utils.FakedResponse(content=ANIMATORS_RESPONSE, status_code=200)
222
    mocked_get.return_value = tests.utils.FakedResponse(content=ANIMATORS_RESPONSE, status_code=200)
223 223
    endpoint = reverse(
224 224
        "generic-endpoint",
225 225
        kwargs={"connector": "isere-ens", "slug": setup.slug, "endpoint": "animators"},
......
256 256
    setup.api_version = api_version
257 257
    setup.save()
258 258
    freezer.move_to("2021-01-21 12:00:00")
259
    mocked_get.return_value = utils.FakedResponse(content=SITE_CALENDAR_RESPONSE, status_code=200)
259
    mocked_get.return_value = tests.utils.FakedResponse(content=SITE_CALENDAR_RESPONSE, status_code=200)
260 260
    endpoint = reverse(
261 261
        "generic-endpoint",
262 262
        kwargs={
......
309 309

  
310 310
@mock.patch("passerelle.utils.Request.post")
311 311
def test_post_book_v1(mocked_post, app, setup):
312
    mocked_post.return_value = utils.FakedResponse(content=BOOK_RESPONSE, status_code=200)
312
    mocked_post.return_value = tests.utils.FakedResponse(content=BOOK_RESPONSE, status_code=200)
313 313
    endpoint = reverse(
314 314
        "generic-endpoint",
315 315
        kwargs={
......
350 350
    assert response.json["err"] == 0
351 351
    assert response.json["data"]["status"] == "BOOKING"
352 352

  
353
    mocked_post.return_value = utils.FakedResponse(content=BOOK_RESPONSE_OVERBOOKING, status_code=200)
353
    mocked_post.return_value = tests.utils.FakedResponse(content=BOOK_RESPONSE_OVERBOOKING, status_code=200)
354 354
    response = app.post_json(endpoint, params=book)
355 355
    assert mocked_post.call_args[0][0].endswith("api/1.0.0/booking")
356 356
    assert mocked_post.call_count == 2
357 357
    assert response.json["err"] == 0
358 358
    assert response.json["data"]["status"] == "OVERBOOKING"
359 359

  
360
    mocked_post.return_value = utils.FakedResponse(content=BOOK_RESPONSE_REFUSED, status_code=200)
360
    mocked_post.return_value = tests.utils.FakedResponse(content=BOOK_RESPONSE_REFUSED, status_code=200)
361 361
    response = app.post_json(endpoint, params=book)
362 362
    assert mocked_post.call_args[0][0].endswith("api/1.0.0/booking")
363 363
    assert mocked_post.call_count == 3
......
366 366
    assert response.json["err_desc"] == "booking status is REFUSED"
367 367
    assert response.json["data"]["status"] == "REFUSED"
368 368

  
369
    mocked_post.return_value = utils.FakedResponse(content="""["not", "a", "dict"]""", status_code=200)
369
    mocked_post.return_value = tests.utils.FakedResponse(content="""["not", "a", "dict"]""", status_code=200)
370 370
    response = app.post_json(endpoint, params=book)
371 371
    assert mocked_post.call_args[0][0].endswith("api/1.0.0/booking")
372 372
    assert mocked_post.call_count == 4
......
375 375
    assert response.json["err_desc"] == "response is not a dict"
376 376
    assert response.json["data"] == ["not", "a", "dict"]
377 377

  
378
    mocked_post.return_value = utils.FakedResponse(content="""{"foo": "bar"}""", status_code=200)
378
    mocked_post.return_value = tests.utils.FakedResponse(content="""{"foo": "bar"}""", status_code=200)
379 379
    response = app.post_json(endpoint, params=book)
380 380
    assert mocked_post.call_args[0][0].endswith("api/1.0.0/booking")
381 381
    assert mocked_post.call_count == 5
......
385 385
    assert response.json["data"] == {"foo": "bar"}
386 386

  
387 387
    book["animator"] = ""
388
    mocked_post.return_value = utils.FakedResponse(content=BOOK_RESPONSE, status_code=200)
388
    mocked_post.return_value = tests.utils.FakedResponse(content=BOOK_RESPONSE, status_code=200)
389 389
    response = app.post_json(endpoint, params=book)
390 390
    assert mocked_post.call_args[0][0].endswith("api/1.0.0/booking")
391 391
    assert 'schoolAnimator' not in mocked_post.call_args.kwargs['json']['booking']
......
394 394
    assert response.json["data"]["status"] == "BOOKING"
395 395

  
396 396
    del book["animator"]
397
    mocked_post.return_value = utils.FakedResponse(content=BOOK_RESPONSE, status_code=200)
397
    mocked_post.return_value = tests.utils.FakedResponse(content=BOOK_RESPONSE, status_code=200)
398 398
    response = app.post_json(endpoint, params=book)
399 399
    assert mocked_post.call_args[0][0].endswith("api/1.0.0/booking")
400 400
    assert 'schoolAnimator' not in mocked_post.call_args.kwargs['json']['booking']
......
414 414
def test_post_book(mocked_post, app, setup, api_version):
415 415
    setup.api_version = api_version
416 416
    setup.save()
417
    mocked_post.return_value = utils.FakedResponse(content=BOOK_RESPONSE, status_code=200)
417
    mocked_post.return_value = tests.utils.FakedResponse(content=BOOK_RESPONSE, status_code=200)
418 418
    endpoint = reverse(
419 419
        "generic-endpoint",
420 420
        kwargs={
......
460 460
    assert mocked_post.call_args.kwargs['json']['projectCode'] == 'pc'
461 461
    assert response.json["err"] == 0
462 462

  
463
    mocked_post.return_value = utils.FakedResponse(content=BOOK_RESPONSE_OVERBOOKING, status_code=200)
463
    mocked_post.return_value = tests.utils.FakedResponse(content=BOOK_RESPONSE_OVERBOOKING, status_code=200)
464 464
    response = app.post_json(endpoint, params=book)
465 465
    assert mocked_post.call_args[0][0].endswith("api/" + api_version + "/site/booking/school")
466 466
    assert mocked_post.call_count == 3
467 467
    assert response.json["err"] == 0
468 468
    assert response.json["data"]["status"] == "OVERBOOKING"
469 469

  
470
    mocked_post.return_value = utils.FakedResponse(content=BOOK_RESPONSE_REFUSED, status_code=200)
470
    mocked_post.return_value = tests.utils.FakedResponse(content=BOOK_RESPONSE_REFUSED, status_code=200)
471 471
    response = app.post_json(endpoint, params=book)
472 472
    assert mocked_post.call_args[0][0].endswith("api/" + api_version + "/site/booking/school")
473 473
    assert mocked_post.call_count == 4
......
476 476
    assert response.json["err_desc"] == "booking status is REFUSED"
477 477
    assert response.json["data"]["status"] == "REFUSED"
478 478

  
479
    mocked_post.return_value = utils.FakedResponse(content="""["not", "a", "dict"]""", status_code=200)
479
    mocked_post.return_value = tests.utils.FakedResponse(content="""["not", "a", "dict"]""", status_code=200)
480 480
    response = app.post_json(endpoint, params=book)
481 481
    assert mocked_post.call_args[0][0].endswith("api/" + api_version + "/site/booking/school")
482 482
    assert mocked_post.call_count == 5
......
485 485
    assert response.json["err_desc"] == "response is not a dict"
486 486
    assert response.json["data"] == ["not", "a", "dict"]
487 487

  
488
    mocked_post.return_value = utils.FakedResponse(content="""{"foo": "bar"}""", status_code=200)
488
    mocked_post.return_value = tests.utils.FakedResponse(content="""{"foo": "bar"}""", status_code=200)
489 489
    response = app.post_json(endpoint, params=book)
490 490
    assert mocked_post.call_args[0][0].endswith("api/" + api_version + "/site/booking/school")
491 491
    assert mocked_post.call_count == 6
......
495 495
    assert response.json["data"] == {"foo": "bar"}
496 496

  
497 497
    book["animator"] = ""
498
    mocked_post.return_value = utils.FakedResponse(content=BOOK_RESPONSE, status_code=200)
498
    mocked_post.return_value = tests.utils.FakedResponse(content=BOOK_RESPONSE, status_code=200)
499 499
    response = app.post_json(endpoint, params=book)
500 500
    assert mocked_post.call_args[0][0].endswith("api/" + api_version + "/site/booking/school")
501 501
    assert 'schoolAnimator' not in mocked_post.call_args.kwargs['json']
......
504 504
    assert response.json["data"]["status"] == "BOOKING"
505 505

  
506 506
    del book["animator"]
507
    mocked_post.return_value = utils.FakedResponse(content=BOOK_RESPONSE, status_code=200)
507
    mocked_post.return_value = tests.utils.FakedResponse(content=BOOK_RESPONSE, status_code=200)
508 508
    response = app.post_json(endpoint, params=book)
509 509
    assert mocked_post.call_args[0][0].endswith("api/" + api_version + "/site/booking/school")
510 510
    assert 'schoolAnimator' not in mocked_post.call_args.kwargs['json']
......
557 557
        },
558 558
    )
559 559

  
560
    mocked_get.return_value = utils.FakedResponse(content=BOOK_RESPONSE, status_code=200)
560
    mocked_get.return_value = tests.utils.FakedResponse(content=BOOK_RESPONSE, status_code=200)
561 561
    response = app.get(endpoint + "?code=123")
562 562
    if api_version == '1.0.0':
563 563
        assert mocked_get.call_args[0][0].endswith("api/1.0.0/booking/123/status")
......
570 570
    response = app.get(endpoint, status=400)  # no code specified
571 571
    assert mocked_get.call_count == 1
572 572

  
573
    mocked_get.return_value = utils.FakedResponse(content="""["not", "a", "dict"]""", status_code=200)
573
    mocked_get.return_value = tests.utils.FakedResponse(content="""["not", "a", "dict"]""", status_code=200)
574 574
    response = app.get(endpoint + "?code=123")
575 575
    assert mocked_get.call_count == 2
576 576
    assert response.json["err"] == 1
......
578 578
    assert response.json["err_desc"] == "response is not a dict"
579 579
    assert response.json["data"] == ["not", "a", "dict"]
580 580

  
581
    mocked_get.return_value = utils.FakedResponse(content="""{"foo": "bar"}""", status_code=200)
581
    mocked_get.return_value = tests.utils.FakedResponse(content="""{"foo": "bar"}""", status_code=200)
582 582
    response = app.get(endpoint + "?code=123")
583 583
    assert mocked_get.call_count == 3
584 584
    assert response.json["err"] == 1
......
600 600
            "endpoint": "cancel-site-booking",
601 601
        },
602 602
    )
603
    mocked_post.return_value = utils.FakedResponse(content=CANCEL_RESPONSE, status_code=200)
603
    mocked_post.return_value = tests.utils.FakedResponse(content=CANCEL_RESPONSE, status_code=200)
604 604
    response = app.delete(endpoint + "?code=123")
605 605
    if api_version == '1.0.0':
606 606
        assert response.json["err"] == 1
......
626 626
    response = app.get(endpoint, status=400)  # no code specified
627 627
    assert mocked_post.call_count == 3  # same as before
628 628

  
629
    mocked_post.return_value = utils.FakedResponse(content="""["not", "a", "dict"]""", status_code=200)
629
    mocked_post.return_value = tests.utils.FakedResponse(content="""["not", "a", "dict"]""", status_code=200)
630 630
    response = app.get(endpoint + "?code=123")
631 631
    assert mocked_post.call_count == 4
632 632
    assert response.json["err"] == 1
......
634 634
    assert response.json["err_desc"] == "response is not a dict"
635 635
    assert response.json["data"] == ["not", "a", "dict"]
636 636

  
637
    mocked_post.return_value = utils.FakedResponse(content="""{"foo": "bar"}""", status_code=200)
637
    mocked_post.return_value = tests.utils.FakedResponse(content="""{"foo": "bar"}""", status_code=200)
638 638
    response = app.get(endpoint + "?code=123")
639 639
    assert mocked_post.call_count == 5
640 640
    assert response.json["err"] == 1
tests/test_jobs.py
6 6
import isodate
7 7
import mock
8 8
import pytest
9
import utils
10 9
from django.core.management import call_command
11
from test_base_adresse import StreetModel, base_adresse
12 10

  
11
import tests.utils
13 12
from passerelle.base.models import Job, ResourceLog, SkipJob
14 13
from passerelle.utils.jsonresponse import APIError
14
from tests.test_base_adresse import StreetModel, base_adresse
15 15

  
16 16

  
17 17
@mock.patch('passerelle.utils.Request.get')
......
19 19
    Job.objects.all().delete()  # remove jobs automatically added at connector creation
20 20
    filepath = os.path.join(os.path.dirname(__file__), 'data', 'update_streets_test.gz')
21 21
    with open(filepath, 'rb') as ban_file:
22
        mocked_get.return_value = utils.FakedResponse(content=ban_file.read(), status_code=200)
22
        mocked_get.return_value = tests.utils.FakedResponse(content=ban_file.read(), status_code=200)
23 23

  
24 24
    freezer.move_to('2019-01-01 00:00:00')
25 25
    job = base_adresse.add_job('update_streets_data')
......
30 30
    assert StreetModel.objects.count() == 3
31 31

  
32 32
    # don't delete streets if bano file is empty
33
    mocked_get.return_value = utils.FakedResponse(content=b'', status_code=200)
33
    mocked_get.return_value = tests.utils.FakedResponse(content=b'', status_code=200)
34 34
    freezer.move_to('2019-01-01 12:00:00')
35 35
    job = base_adresse.add_job('update_streets_data')
36 36
    assert job.status == 'registered'
......
45 45
    assert StreetModel.objects.count() == 3
46 46

  
47 47
    with open(filepath, 'rb') as ban_file:
48
        mocked_get.return_value = utils.FakedResponse(content=ban_file.read(), status_code=200)
48
        mocked_get.return_value = tests.utils.FakedResponse(content=ban_file.read(), status_code=200)
49 49

  
50 50
    StreetModel.objects.all().delete()
51 51

  
......
138 138
    with mock.patch('passerelle.apps.base_adresse.models.BaseAdresse.down') as down:
139 139
        down.side_effect = lambda: True
140 140
        with open(filepath, 'rb') as ban_file:
141
            mocked_get.return_value = utils.FakedResponse(content=ban_file.read(), status_code=200)
141
            mocked_get.return_value = tests.utils.FakedResponse(content=ban_file.read(), status_code=200)
142 142
        job = base_adresse.add_job('update_streets_data')
143 143
        assert job.status == 'registered'
144 144

  
......
150 150
def test_runjob(mocked_get, app, base_adresse, freezer):
151 151
    filepath = os.path.join(os.path.dirname(__file__), 'data', 'update_streets_test.gz')
152 152
    with open(filepath, 'rb') as ban_file:
153
        mocked_get.return_value = utils.FakedResponse(content=ban_file.read(), status_code=200)
153
        mocked_get.return_value = tests.utils.FakedResponse(content=ban_file.read(), status_code=200)
154 154

  
155 155
    freezer.move_to('2019-01-01 00:00:00')
156 156
    job = base_adresse.add_job('update_streets_data')
......
166 166
    Job.objects.all().delete()  # remove jobs automatically added at connector creation
167 167
    filepath = os.path.join(os.path.dirname(__file__), 'data', 'update_streets_test.gz')
168 168
    with open(filepath, 'rb') as ban_file:
169
        mocked_get.return_value = utils.FakedResponse(content=ban_file.read(), status_code=200)
169
        mocked_get.return_value = tests.utils.FakedResponse(content=ban_file.read(), status_code=200)
170 170

  
171 171
    job = base_adresse.add_job('update_streets_data')
172 172
    mocked_get.side_effect = Exception('hello')
tests/test_jsonresponse.py
139 139
    assert 'err_class' in data
140 140
    assert 'err' in data
141 141
    assert data['err'] == 1
142
    assert data['err_class'] == 'test_jsonresponse.CustomException'
142
    assert data['err_class'] == 'tests.test_jsonresponse.CustomException'
143 143
    assert result.status_code == 200
144 144

  
145 145

  
tests/test_lille_kimoce.py
21 21

  
22 22
import mock
23 23
import pytest
24
import utils
25 24
from django.urls import reverse
26 25

  
26
import tests.utils
27 27
from passerelle.contrib.lille_kimoce.models import Kimoce
28 28
from passerelle.utils.jsonresponse import APIError
29 29

  
30 30

  
31 31
@pytest.fixture
32 32
def setup(db):
33
    return utils.setup_access_rights(
33
    return tests.utils.setup_access_rights(
34 34
        Kimoce.objects.create(
35 35
            slug='test', base_url='https://kimoce.mairie-lille.fr/api/', username='test', password='secret'
36 36
        )
......
191 191
@mock.patch('passerelle.utils.Request.post')
192 192
def test_get_token(mocked_post, app, setup):
193 193
    with pytest.raises(APIError):
194
        mocked_post.return_value = utils.FakedResponse(content=TOKEN_ERROR_RESPONSE, status_code=400)
194
        mocked_post.return_value = tests.utils.FakedResponse(content=TOKEN_ERROR_RESPONSE, status_code=400)
195 195
        setup.get_token()
196
    mocked_post.return_value = utils.FakedResponse(content=TOKEN_RESPONSE, status_code=200)
196
    mocked_post.return_value = tests.utils.FakedResponse(content=TOKEN_RESPONSE, status_code=200)
197 197
    setup.get_token()
198 198
    assert mocked_post.call_count == 2
199 199
    assert "api/login_check" in mocked_post.call_args[0][0]
......
209 209
@mock.patch('passerelle.utils.Request.post')
210 210
@mock.patch('passerelle.utils.Request.get')
211 211
def test_get_categories(mocked_get, mocked_post, app, setup):
212
    mocked_post.return_value = utils.FakedResponse(content=TOKEN_RESPONSE, status_code=200)
213
    mocked_get.return_value = utils.FakedResponse(content=CATEGORIES_RESPONSE, status_code=200)
212
    mocked_post.return_value = tests.utils.FakedResponse(content=TOKEN_RESPONSE, status_code=200)
213
    mocked_get.return_value = tests.utils.FakedResponse(content=CATEGORIES_RESPONSE, status_code=200)
214 214
    endpoint = reverse(
215 215
        'generic-endpoint', kwargs={'connector': 'lille-kimoce', 'slug': setup.slug, 'endpoint': 'categories'}
216 216
    )
......
228 228
@mock.patch('passerelle.utils.Request.post')
229 229
@mock.patch('passerelle.utils.Request.get')
230 230
def test_get_types(mocked_get, mocked_post, app, setup):
231
    mocked_post.return_value = utils.FakedResponse(content=TOKEN_RESPONSE, status_code=200)
232
    mocked_get.return_value = utils.FakedResponse(content=TYPES_RESPONSE, status_code=200)
231
    mocked_post.return_value = tests.utils.FakedResponse(content=TOKEN_RESPONSE, status_code=200)
232
    mocked_get.return_value = tests.utils.FakedResponse(content=TYPES_RESPONSE, status_code=200)
233 233
    endpoint = reverse(
234 234
        'generic-endpoint', kwargs={'connector': 'lille-kimoce', 'slug': setup.slug, 'endpoint': 'types'}
235 235
    )
......
250 250
@mock.patch('passerelle.utils.Request.post')
251 251
@mock.patch('passerelle.utils.Request.get')
252 252
def test_get_sub_types(mocked_get, mocked_post, app, setup):
253
    mocked_post.return_value = utils.FakedResponse(content=TOKEN_RESPONSE, status_code=200)
254
    mocked_get.return_value = utils.FakedResponse(content=SUB_TYPES_RESPONSE, status_code=200)
253
    mocked_post.return_value = tests.utils.FakedResponse(content=TOKEN_RESPONSE, status_code=200)
254
    mocked_get.return_value = tests.utils.FakedResponse(content=SUB_TYPES_RESPONSE, status_code=200)
255 255
    endpoint = reverse(
256 256
        'generic-endpoint', kwargs={'connector': 'lille-kimoce', 'slug': setup.slug, 'endpoint': 'subtypes'}
257 257
    )
......
272 272
@mock.patch('passerelle.utils.Request.post')
273 273
@mock.patch('passerelle.utils.Request.get')
274 274
def test_get_streets(mocked_get, mocked_post, app, setup):
275
    mocked_post.return_value = utils.FakedResponse(content=TOKEN_RESPONSE, status_code=200)
276
    mocked_get.return_value = utils.FakedResponse(content=STREETS_RESPONSE, status_code=200)
275
    mocked_post.return_value = tests.utils.FakedResponse(content=TOKEN_RESPONSE, status_code=200)
276
    mocked_get.return_value = tests.utils.FakedResponse(content=STREETS_RESPONSE, status_code=200)
277 277
    endpoint = reverse(
278 278
        'generic-endpoint', kwargs={'connector': 'lille-kimoce', 'slug': setup.slug, 'endpoint': 'streets'}
279 279
    )
......
282 282
    assert len(response.json['data']) == 3
283 283
    response = app.get(endpoint, params={'q': 'PLACE JosEPH'})
284 284
    assert mocked_get.call_args[1]['params']['streetAddress'] == 'PLACE JosEPH'
285
    mocked_get.return_value = utils.FakedResponse(content=STREETS_RESPONSE, status_code=401)
285
    mocked_get.return_value = tests.utils.FakedResponse(content=STREETS_RESPONSE, status_code=401)
286 286
    response = app.get(endpoint, params={'id': 'RUE de PAris'})
287 287
    assert mocked_get.call_args[1]['params']['streetAddress'] == 'RUE de PAris'
288 288
    for item in response.json['data']:
......
296 296
@mock.patch('passerelle.utils.Request.post')
297 297
def test_create_demand(mocked_post, app, setup):
298 298
    mocked_post.side_effect = [
299
        utils.FakedResponse(content=TOKEN_RESPONSE, status_code=200),
300
        utils.FakedResponse(content=DEMAND_CREATION_RESPONSE, status_code=200),
299
        tests.utils.FakedResponse(content=TOKEN_RESPONSE, status_code=200),
300
        tests.utils.FakedResponse(content=DEMAND_CREATION_RESPONSE, status_code=200),
301 301
    ]
302 302
    data = {
303 303
        'category': '/api/categories/80',
......
327 327
    assert response.json['data'] == json.loads(DEMAND_CREATION_RESPONSE)
328 328
    assert mocked_post.call_count == 2
329 329
    data['picture1'] = {'content': 'base64encoded_picture'}
330
    mocked_post.return_value = utils.FakedResponse(content=DEMAND_CREATION_RESPONSE, status_code=200)
330
    mocked_post.return_value = tests.utils.FakedResponse(content=DEMAND_CREATION_RESPONSE, status_code=200)
331 331
    mocked_post.side_effect = None
332 332
    response = app.post_json(endpoint, params=data)
333 333
    assert mocked_post.call_count == 3
tests/test_lille_urban_card.py
4 4

  
5 5
import mock
6 6
import pytest
7
import utils
8 7
from httmock import HTTMock
9 8

  
9
import tests.utils
10 10
from passerelle.compat import json_loads
11 11
from passerelle.contrib.lille_urban_card.models import LilleUrbanCard
12 12
from passerelle.utils.jsonresponse import APIError
......
14 14

  
15 15
@pytest.fixture
16 16
def connector(db):
17
    return utils.setup_access_rights(
17
    return tests.utils.setup_access_rights(
18 18
        LilleUrbanCard.objects.create(
19 19
            slug='test', base_url='http://localhost', username='test', password='secret'
20 20
        )
......
97 97
@mock.patch('passerelle.utils.Request.post')
98 98
def test_get_token(mocked_post, app, connector):
99 99
    with pytest.raises(APIError):
100
        mocked_post.return_value = utils.FakedResponse(content=TOKEN_ERROR_RESPONSE, status_code=400)
100
        mocked_post.return_value = tests.utils.FakedResponse(content=TOKEN_ERROR_RESPONSE, status_code=400)
101 101
        connector.get_token()
102
    mocked_post.return_value = utils.FakedResponse(content=TOKEN_RESPONSE, status_code=200)
102
    mocked_post.return_value = tests.utils.FakedResponse(content=TOKEN_RESPONSE, status_code=200)
103 103
    connector.get_token()
104 104

  
105 105

  
106 106
def test_csp(app, connector):
107
    endpoint = utils.generic_endpoint_url('lille-urban-card', 'csp', slug=connector.slug)
107
    endpoint = tests.utils.generic_endpoint_url('lille-urban-card', 'csp', slug=connector.slug)
108 108
    resp = app.get(endpoint)
109 109
    assert resp.json.get('data')
110 110

  
111 111

  
112 112
def test_card_request(app, connector):
113
    endpoint = utils.generic_endpoint_url('lille-urban-card', 'card_request', slug=connector.slug)
113
    endpoint = tests.utils.generic_endpoint_url('lille-urban-card', 'card_request', slug=connector.slug)
114 114
    with HTTMock(mocked_http):
115 115
        resp = app.post_json(
116 116
            endpoint,
......
172 172

  
173 173

  
174 174
def test_card_status(app, connector):
175
    endpoint = utils.generic_endpoint_url('lille-urban-card', 'card_status', slug=connector.slug)
175
    endpoint = tests.utils.generic_endpoint_url('lille-urban-card', 'card_status', slug=connector.slug)
176 176
    with HTTMock(mocked_http):
177 177
        resp = app.get(endpoint + '?n_demande_clu=1234')
178 178
        assert resp.json['data']['statut_desc'] == 'CARTE_PRODUITE_EXPEDIEE'
179 179

  
180 180

  
181 181
def test_add_subscriptions(app, connector):
182
    endpoint = utils.generic_endpoint_url('lille-urban-card', 'add_subscriptions', slug=connector.slug)
182
    endpoint = tests.utils.generic_endpoint_url('lille-urban-card', 'add_subscriptions', slug=connector.slug)
183 183
    with HTTMock(mocked_http):
184 184
        resp = app.post_json(
185 185
            endpoint,
......
227 227

  
228 228

  
229 229
def test_code_change(app, connector):
230
    endpoint = utils.generic_endpoint_url('lille-urban-card', 'code_change', slug=connector.slug)
230
    endpoint = tests.utils.generic_endpoint_url('lille-urban-card', 'code_change', slug=connector.slug)
231 231
    with HTTMock(mocked_http):
232 232
        resp = app.post_json(
233 233
            endpoint,
......
257 257

  
258 258

  
259 259
def test_code_check(app, connector):
260
    endpoint = utils.generic_endpoint_url('lille-urban-card', 'code_check', slug=connector.slug)
260
    endpoint = tests.utils.generic_endpoint_url('lille-urban-card', 'code_check', slug=connector.slug)
261 261
    with HTTMock(mocked_http):
262 262
        resp = app.post_json(
263 263
            endpoint,
......
282 282

  
283 283

  
284 284
def test_card_info(app, connector):
285
    endpoint = utils.generic_endpoint_url('lille-urban-card', 'card_info', slug=connector.slug)
285
    endpoint = tests.utils.generic_endpoint_url('lille-urban-card', 'card_info', slug=connector.slug)
286 286
    with HTTMock(mocked_http):
287 287
        resp = app.get(
288 288
            endpoint,
......
313 313

  
314 314

  
315 315
def test_card_revocation(app, connector):
316
    endpoint = utils.generic_endpoint_url('lille-urban-card', 'card_revocation', slug=connector.slug)
316
    endpoint = tests.utils.generic_endpoint_url('lille-urban-card', 'card_revocation', slug=connector.slug)
317 317
    with HTTMock(mocked_http):
318 318
        resp = app.post_json(
319 319
            endpoint,
......
341 341

  
342 342

  
343 343
def test_subscription_revocation(app, connector):
344
    endpoint = utils.generic_endpoint_url('lille-urban-card', 'subscription_revocation', slug=connector.slug)
344
    endpoint = tests.utils.generic_endpoint_url(
345
        'lille-urban-card', 'subscription_revocation', slug=connector.slug
346
    )
345 347
    with HTTMock(mocked_http):
346 348
        resp = app.post_json(
347 349
            endpoint,
......
373 375

  
374 376

  
375 377
def test_subscription_renewal(app, connector):
376
    endpoint = utils.generic_endpoint_url('lille-urban-card', 'subscription_renewal', slug=connector.slug)
378
    endpoint = tests.utils.generic_endpoint_url(
379
        'lille-urban-card', 'subscription_renewal', slug=connector.slug
380
    )
377 381
    with HTTMock(mocked_http):
378 382
        resp = app.post_json(
379 383
            endpoint,
tests/test_maelis.py
5 5

  
6 6
import mock
7 7
import pytest
8
import utils
9 8
from django.test import override_settings
10 9
from django.utils.dateparse import parse_date
11 10

  
11
import tests.utils
12 12
from passerelle.apps.maelis.models import Link, Maelis
13 13
from passerelle.apps.maelis.utils import (
14 14
    decompose_event,
......
51 51
@pytest.fixture
52 52
def catalog_mocked_get(activity_service_wsdl, family_service_wsdl):
53 53
    return (
54
        utils.FakedResponse(
54
        tests.utils.FakedResponse(
55 55
            content=family_service_wsdl, status_code=200, headers={'Content-Type': 'text/xml'}
56 56
        ),
57
        utils.FakedResponse(
57
        tests.utils.FakedResponse(
58 58
            content=activity_service_wsdl, status_code=200, headers={'Content-Type': 'text/xml'}
59 59
        ),
60 60
    )
......
63 63
@pytest.fixture
64 64
def catalog_mocked_post():
65 65
    return (
66
        utils.FakedResponse(
66
        tests.utils.FakedResponse(
67 67
            content=get_xml_file('readFamily.xml'), status_code=200, headers={'Content-Type': 'text/xml'}
68 68
        ),
69
        utils.FakedResponse(
69
        tests.utils.FakedResponse(
70 70
            content=get_xml_file('readActivityListResponse.xml'),
71 71
            status_code=200,
72 72
            headers={'Content-Type': 'text/xml'},
......
76 76

  
77 77
@pytest.fixture
78 78
def connector(db):
79
    return utils.setup_access_rights(
79
    return tests.utils.setup_access_rights(
80 80
        Maelis.objects.create(
81 81
            slug='test', login='foo', password='bar', base_url='http://www3.sigec.fr/entrouvertws/services/'
82 82
        )
......
175 175
def test_update_coordinates(mocked_post, mocked_get, family_service_wsdl, connector, app):
176 176
    mocked_get.return_value = mock.Mock(content=family_service_wsdl)
177 177
    mocked_post.side_effect = (
178
        utils.FakedResponse(
178
        tests.utils.FakedResponse(
179 179
            content=get_xml_file('updateCoordinatesResponse.xml'),
180 180
            status_code=200,
181 181
            headers={'Content-Type': 'text/xml'},
182 182
        ),
183
        utils.FakedResponse(
183
        tests.utils.FakedResponse(
184 184
            content=get_xml_file('updateCoordinatesError.xml'),
185 185
            status_code=200,
186 186
            headers={'Content-Type': 'text/xml'},
......
323 323
    connector,
324 324
):
325 325
    mocked_get.side_effect = (
326
        utils.FakedResponse(
326
        tests.utils.FakedResponse(
327 327
            content=family_service_wsdl, status_code=200, headers={'Content-Type': 'text/xml'}
328 328
        ),
329
        utils.FakedResponse(
329
        tests.utils.FakedResponse(
330 330
            content=activity_service_wsdl, status_code=200, headers={'Content-Type': 'text/xml'}
331 331
        ),
332
        utils.FakedResponse(
332
        tests.utils.FakedResponse(
333 333
            content=activity_service_wsdl, status_code=200, headers={'Content-Type': 'text/xml'}
334 334
        ),
335 335
    )
336 336
    mocked_post.side_effect = (
337
        utils.FakedResponse(
337
        tests.utils.FakedResponse(
338 338
            content=get_xml_file('readFamily.xml'), status_code=200, headers={'Content-Type': 'text/xml'}
339 339
        ),
340
        utils.FakedResponse(
340
        tests.utils.FakedResponse(
341 341
            content=get_xml_file('child_planning_readActivityListResponse.xml'),
342 342
            status_code=200,
343 343
            headers={'Content-Type': 'text/xml'},
344 344
        ),
345
        utils.FakedResponse(
345
        tests.utils.FakedResponse(
346 346
            content=get_xml_file('child_planning_readChildMonthPlanningResponse.xml'),
347 347
            status_code=200,
348 348
            headers={'Content-Type': 'text/xml'},
......
429 429
def test_subscribe(mocked_post, mocked_get, family_service_wsdl, connector, app):
430 430
    mocked_get.return_value = mock.Mock(content=family_service_wsdl)
431 431
    mocked_post.side_effect = (
432
        utils.FakedResponse(
432
        tests.utils.FakedResponse(
433 433
            content=get_xml_file('readFamily.xml'), status_code=200, headers={'Content-Type': 'text/xml'}
434 434
        ),
435
        utils.FakedResponse(
435
        tests.utils.FakedResponse(
436 436
            content=get_xml_file('subscribeActivityResult.xml'),
437 437
            status_code=200,
438 438
            headers={'Content-Type': 'text/xml'},
......
453 453
def test_unsubscribe(mocked_post, mocked_get, family_service_wsdl, connector, app):
454 454
    mocked_get.return_value = mock.Mock(content=family_service_wsdl)
455 455
    mocked_post.side_effect = (
456
        utils.FakedResponse(
456
        tests.utils.FakedResponse(
457 457
            content=get_xml_file('readFamily.xml'), status_code=200, headers={'Content-Type': 'text/xml'}
458 458
        ),
459
        utils.FakedResponse(
459
        tests.utils.FakedResponse(
460 460
            content=get_xml_file('deletesubscribe.xml'), status_code=200, headers={'Content-Type': 'text/xml'}
461 461
        ),
462 462
    )
tests/test_mdel.py
24 24
from xml.etree import ElementTree as etree
25 25

  
26 26
import pytest
27
import utils
28 27
from lxml import etree as letree
29 28

  
29
import tests.utils
30 30
from passerelle.apps.mdel.mdel import AttachedFile, Description, Message, get_resource_base_dir
31 31
from passerelle.apps.mdel.models import MDEL, Demand
32 32
from passerelle.apps.mdel.utils import parse_date
......
64 64

  
65 65
@pytest.fixture
66 66
def setup(db):
67
    return utils.setup_access_rights(MDEL.objects.create(slug='test'))
67
    return tests.utils.setup_access_rights(MDEL.objects.create(slug='test'))
68 68

  
69 69

  
70 70
@pytest.fixture(
tests/test_mdel_ddpacs.py
22 22
import os
23 23

  
24 24
import pytest
25
import utils
26 25
import xmlschema
27 26

  
27
import tests.utils
28 28
from passerelle.apps.mdel_ddpacs.models import Demand, Resource
29 29
from passerelle.utils import json, sftp
30 30
from passerelle.utils.zip import ZipTemplate, diff_zip
......
37 37

  
38 38
@pytest.fixture(autouse=True)
39 39
def resource(db):
40
    return utils.setup_access_rights(
40
    return tests.utils.setup_access_rights(
41 41
        Resource.objects.create(
42 42
            slug='test',
43 43
            code_insee='66666',
tests/test_mdph13.py
24 24
import pytest
25 25
import requests
26 26
import requests.exceptions
27
import utils
28 27

  
28
import tests.utils
29 29
from passerelle.contrib.mdph13.models import Link, MDPH13Resource
30 30
from passerelle.utils.jsonresponse import APIError
31 31

  
......
197 197

  
198 198
@pytest.fixture
199 199
def mdph13(db):
200
    return utils.make_resource(
200
    return tests.utils.make_resource(
201 201
        MDPH13Resource,
202 202
        title='Test 1',
203 203
        slug='test1',
tests/test_misc.py
11 11
from django.utils.six import StringIO
12 12
from mock import patch
13 13
from requests.exceptions import ReadTimeout
14
from test_manager import login
15 14

  
16 15
from passerelle.apps.base_adresse.models import BaseAdresse
17 16
from passerelle.apps.clicrdv.models import ClicRdv
18 17
from passerelle.apps.opengis.models import OpenGIS
19 18
from passerelle.base.models import ResourceLog
19
from tests.test_manager import login
20 20

  
21 21

  
22 22
def test_get_description_url_fields(db):
......
104 104

  
105 105

  
106 106
def test_trace_emails(app, settings, dummy_csv_datasource, email_handler, mailoutbox):
107
    from utils import generic_endpoint_url
107
    from tests.utils import generic_endpoint_url
108 108

  
109 109
    settings.ADMINS = [('admin', 'admin@example.net')]
110 110

  
tests/test_okina.py
3 3

  
4 4
import mock
5 5
import pytest
6
import utils
7 6
from django.contrib.contenttypes.models import ContentType
8 7

  
8
import tests.utils
9 9
from passerelle.apps.okina.models import Okina
10 10
from passerelle.base.models import AccessRight, ApiUser
11 11

  
......
1647 1647

  
1648 1648

  
1649 1649
def test_okina_cities(app, okina):
1650
    endpoint = utils.generic_endpoint_url('okina', 'cities', slug=okina.slug)
1650
    endpoint = tests.utils.generic_endpoint_url('okina', 'cities', slug=okina.slug)
1651 1651
    assert endpoint == '/okina/test/cities'
1652 1652
    with mock.patch('passerelle.utils.Request.get') as requests_get:
1653
        requests_get.return_value = utils.FakedResponse(content=CITIES, status_code=200)
1653
        requests_get.return_value = tests.utils.FakedResponse(content=CITIES, status_code=200)
1654 1654
        resp = app.get(endpoint, status=200)
1655 1655
        assert requests_get.call_count == 1
1656 1656
        assert requests_get.call_args[0][0] == 'https://okina.example.net/b2b/cities'
......
1663 1663
        assert resp.json['data'][0]['text'] == 'ARDENTES (36120)'
1664 1664
        assert resp.json['data'][0]['lat'] is None
1665 1665

  
1666
        requests_get.return_value = utils.FakedResponse(content=CITIES_NEW, status_code=200)
1666
        requests_get.return_value = tests.utils.FakedResponse(content=CITIES_NEW, status_code=200)
1667 1667
        resp = app.get(endpoint, status=200)
1668 1668
        assert requests_get.call_count == 2
1669 1669
        assert 'data' in resp.json
......
1676 1676

  
1677 1677

  
1678 1678
def test_okina_classes(app, okina):
1679
    endpoint = utils.generic_endpoint_url('okina', 'classes', slug=okina.slug)
1679
    endpoint = tests.utils.generic_endpoint_url('okina', 'classes', slug=okina.slug)
1680 1680
    assert endpoint == '/okina/test/classes'
1681 1681
    with mock.patch('passerelle.utils.Request.get') as requests_get:
1682
        requests_get.return_value = utils.FakedResponse(content=CLASSES, status_code=200)
1682
        requests_get.return_value = tests.utils.FakedResponse(content=CLASSES, status_code=200)
1683 1683
        resp = app.get(endpoint, status=200)
1684 1684
        assert requests_get.call_count == 1
1685 1685
        assert requests_get.call_args[0][0] == 'https://okina.example.net/b2b/classes'
......
1690 1690

  
1691 1691

  
1692 1692
def test_okina_institutions(app, okina):
1693
    endpoint = utils.generic_endpoint_url('okina', 'institutions', slug=okina.slug)
1693
    endpoint = tests.utils.generic_endpoint_url('okina', 'institutions', slug=okina.slug)
1694 1694
    assert endpoint == '/okina/test/institutions'
1695 1695
    with mock.patch('passerelle.utils.Request.get') as requests_get:
1696 1696
        for content in (INSTITUTIONS, INSTITUTIONS_NEW):
1697
            requests_get.return_value = utils.FakedResponse(content=content, status_code=200)
1697
            requests_get.return_value = tests.utils.FakedResponse(content=content, status_code=200)
1698 1698
            resp = app.get(endpoint, status=200)
1699 1699
            assert requests_get.call_args[0][0] == 'https://okina.example.net/b2b/institutions'
1700 1700
            assert resp.json['err'] == 0
......
1725 1725

  
1726 1726

  
1727 1727
def test_okina_search(app, okina):
1728
    endpoint = utils.generic_endpoint_url('okina', 'search', slug=okina.slug)
1728
    endpoint = tests.utils.generic_endpoint_url('okina', 'search', slug=okina.slug)
1729 1729
    assert endpoint == '/okina/test/search'
1730 1730
    with mock.patch('passerelle.utils.Request.post') as requests_post:
1731
        requests_post.return_value = utils.FakedResponse(content=SEARCH, status_code=200)
1731
        requests_post.return_value = tests.utils.FakedResponse(content=SEARCH, status_code=200)
1732 1732

  
1733 1733
        # refuse anonymous access
1734 1734
        resp = app.get(endpoint + '?lat=46.828652&lon=1.701463&institution=277', status=403)
......
1771 1771

  
1772 1772

  
1773 1773
def test_okina_stops_area(app, okina):
1774
    endpoint = utils.generic_endpoint_url('okina', 'stop-areas', slug=okina.slug)
1774
    endpoint = tests.utils.generic_endpoint_url('okina', 'stop-areas', slug=okina.slug)
1775 1775
    assert endpoint == '/okina/test/stop-areas'
1776 1776
    with mock.patch('passerelle.utils.Request.get') as requests_get:
1777
        requests_get.return_value = utils.FakedResponse(content=STOPS, status_code=200)
1777
        requests_get.return_value = tests.utils.FakedResponse(content=STOPS, status_code=200)
1778 1778
        resp = app.get(endpoint + '/from-city/36005/to-institution/276/', status=200)
1779 1779
        assert (
1780 1780
            requests_get.call_args[0][0]
......
1787 1787

  
1788 1788

  
1789 1789
def test_okina_ods(app, okina):
1790
    endpoint = utils.generic_endpoint_url('okina', 'origin-destinations', slug=okina.slug)
1790
    endpoint = tests.utils.generic_endpoint_url('okina', 'origin-destinations', slug=okina.slug)
1791 1791
    assert endpoint == '/okina/test/origin-destinations'
1792 1792
    with mock.patch('passerelle.utils.Request.get') as requests_get:
1793
        requests_get.return_value = utils.FakedResponse(content=ODS, status_code=200)
1793
        requests_get.return_value = tests.utils.FakedResponse(content=ODS, status_code=200)
1794 1794
        resp = app.get(endpoint, status=200)
1795 1795
        assert requests_get.call_count == 1
1796 1796
        assert requests_get.call_args[0][0] == 'https://okina.example.net/b2b/ods'
......
1801 1801
        assert resp.json['data'][0]['identifier'] == 'SYNDICAT ARDENTES 4 (semaine Aller)'
1802 1802
        assert resp.json['data'][0]['vehicle_journey_id'] == '84'
1803 1803

  
1804
        requests_get.return_value = utils.FakedResponse(content=ODS, status_code=200)
1804
        requests_get.return_value = tests.utils.FakedResponse(content=ODS, status_code=200)
1805 1805
        resp = app.get(endpoint + '/to-institution/276/', status=200)
1806 1806
        assert requests_get.call_args[0][0] == 'https://okina.example.net/b2b/ods/institution/276'
1807 1807
        assert resp.json['err'] == 0
......
1811 1811
        assert resp.json['data'][0]['identifier'] == 'SYNDICAT ARDENTES 4 (semaine Aller)'
1812 1812
        assert resp.json['data'][0]['vehicle_journey_id'] == '84'
1813 1813

  
1814
        requests_get.return_value = utils.FakedResponse(content=ODS_LINES, status_code=200)
1814
        requests_get.return_value = tests.utils.FakedResponse(content=ODS_LINES, status_code=200)
1815 1815
        resp = app.get(endpoint + '/from-stop-area/3282/to-institution/276/', status=200)
1816 1816
        assert (
1817 1817
            requests_get.call_args[0][0] == 'https://okina.example.net/b2b/ods/institution/276/stop-area/3282'
......
1836 1836
        assert resp.json['data'][2]['lines'][1]['id'] == '23'
1837 1837
        assert resp.json['data'][2]['lines'][1]['text'] == 'LIGNE 23'
1838 1838

  
1839
        requests_get.return_value = utils.FakedResponse(content=ODS_FULL, status_code=200)
1839
        requests_get.return_value = tests.utils.FakedResponse(content=ODS_FULL, status_code=200)
1840 1840
        resp = app.get(endpoint + '/from-city/36005/to-institution/276/', status=200)
1841 1841
        assert (
1842 1842
            requests_get.call_args[0][0]
......
1851 1851
        assert resp.json['data'][0]['identifier'] == 'SYNDICAT ARDENTES 4 (semaine Aller)'
1852 1852
        assert resp.json['data'][0]['vehicle_journey_id'] == '84'
1853 1853

  
1854
        requests_get.return_value = utils.FakedResponse(content=ODS_FULL, status_code=200)
1854
        requests_get.return_value = tests.utils.FakedResponse(content=ODS_FULL, status_code=200)
1855 1855
        resp = app.get(endpoint + '/from-city/36005/', status=200)
1856 1856
        assert requests_get.call_args[0][0] == 'https://okina.example.net/b2b/ods/subscriberCity/36005'
1857 1857
        assert resp.json['err'] == 0
......
1865 1865

  
1866 1866

  
1867 1867
def test_okina_topology(app, okina):
1868
    endpoint = utils.generic_endpoint_url('okina', 'topology', slug=okina.slug)
1868
    endpoint = tests.utils.generic_endpoint_url('okina', 'topology', slug=okina.slug)
1869 1869
    assert endpoint == '/okina/test/topology'
1870 1870
    with mock.patch('passerelle.utils.Request.get') as requests_get:
1871
        requests_get.return_value = utils.FakedResponse(content=LINES, status_code=200)
1871
        requests_get.return_value = tests.utils.FakedResponse(content=LINES, status_code=200)
1872 1872
        resp = app.get(endpoint + '/lines/', status=200)
1873 1873
        assert requests_get.call_args[0][0] == 'https://okina.example.net/b2b/topology/lines'
1874 1874
        assert resp.json['err'] == 0
......
1876 1876
        assert resp.json['data'][0]['id'] == '45'
1877 1877
        assert resp.json['data'][0]['text'] == '019 - 02 - VELLES LYCEES DE CHATEAUROUX'
1878 1878

  
1879
        requests_get.return_value = utils.FakedResponse(content=NETWORKS, status_code=200)
1879
        requests_get.return_value = tests.utils.FakedResponse(content=NETWORKS, status_code=200)
1880 1880
        resp = app.get(endpoint + '/networks/', status=200)
1881 1881
        assert requests_get.call_args[0][0] == 'https://okina.example.net/b2b/topology/networks'
1882 1882
        assert resp.json['err'] == 0
......
1884 1884
        assert resp.json['data'][0]['id'] == '2'
1885 1885
        assert resp.json['data'][0]['text'] == u'réseau scolaire'
1886 1886

  
1887
        requests_get.return_value = utils.FakedResponse(content=VEHICLE_JOURNEYS, status_code=200)
1887
        requests_get.return_value = tests.utils.FakedResponse(content=VEHICLE_JOURNEYS, status_code=200)
1888 1888
        resp = app.get(endpoint + '/vehicle-journeys/', status=200)
1889 1889
        assert requests_get.call_args[0][0] == 'https://okina.example.net/b2b/topology/vehicle-journeys'
1890 1890
        assert resp.json['err'] == 0
......
1905 1905
            (400, '[{"message": "bad request"}]'),
1906 1906
            (500, '<h1>Crash</h1>'),
1907 1907
        ):
1908
            requests_get.return_value = utils.FakedResponse(content=response[1], status_code=response[0])
1908
            requests_get.return_value = tests.utils.FakedResponse(
1909
                content=response[1], status_code=response[0]
1910
            )
1909 1911
            resp = app.get('/okina/test/cities', status=200)
1910 1912
            assert resp.json['err'] == 1
1911 1913
            if resp.json['data'] and 'status_code' in resp.json['data']:
......
1913 1915

  
1914 1916
        # "normal" 401/403 response, ie problem with login/password
1915 1917
        for status_code in (401, 403):
1916
            requests_get.return_value = utils.FakedResponse(
1918
            requests_get.return_value = tests.utils.FakedResponse(
1917 1919
                content='''{"message": "Invalid credentials",
1918 1920
                    "code": 4, "status" : %d}'''
1919 1921
                % status_code,
......
1927 1929
def test_okina_suscribe(app, okina):
1928 1930

  
1929 1931
    for service in ('subscriber', 'subscription'):
1930
        endpoint = utils.generic_endpoint_url('okina', service, slug=okina.slug)
1932
        endpoint = tests.utils.generic_endpoint_url('okina', service, slug=okina.slug)
1931 1933
        assert endpoint == '/okina/test/%s' % service
1932 1934
        with mock.patch('passerelle.utils.Request.get') as requests_get:
1933 1935
            resp = app.post(endpoint, status=403)
......
1941 1943
        codename='can_access', apiuser=api, resource_type=obj_type, resource_pk=okina.pk
1942 1944
    )
1943 1945
    for service in ('subscriber', 'subscription'):
1944
        endpoint = utils.generic_endpoint_url('okina', service, slug=okina.slug)
1946
        endpoint = tests.utils.generic_endpoint_url('okina', service, slug=okina.slug)
1945 1947
        assert endpoint == '/okina/test/%s' % service
1946 1948
        with mock.patch('passerelle.utils.Request.post') as requests_get:
1947 1949
            resp = app.post(endpoint, status=400)  # no payload
......
1956 1958
            assert resp.json['err_class'] == 'passerelle.utils.jsonresponse.APIError'
1957 1959
            assert resp.json['err_desc'] == 'payload must be a dict'
1958 1960

  
1959
            requests_get.return_value = utils.FakedResponse(content='{"foo":"bar"}', status_code=200)
1961
            requests_get.return_value = tests.utils.FakedResponse(content='{"foo":"bar"}', status_code=200)
1960 1962
            resp = app.post_json(endpoint, params={'x': 'y'})
1961 1963
            assert requests_get.call_count == 1
1962 1964
            assert resp.json['err'] == 0
1963 1965
            assert resp.json['data'] == {'foo': 'bar'}
1964 1966

  
1965 1967
    # multiple subscriptions
1966
    endpoint = utils.generic_endpoint_url('okina', 'subscription', slug=okina.slug)
1968
    endpoint = tests.utils.generic_endpoint_url('okina', 'subscription', slug=okina.slug)
1967 1969
    with mock.patch('passerelle.utils.Request.post') as requests_post:
1968
        requests_post.return_value = utils.FakedResponse(content='{"sub":"ok"}', status_code=200)
1970
        requests_post.return_value = tests.utils.FakedResponse(content='{"sub":"ok"}', status_code=200)
1969 1971
        resp = app.post_json(endpoint, params={'lineIds': '1 ,2, 3', 'foo': 'bar'})
1970 1972
        assert requests_post.call_count == 3
1971 1973
        assert json.loads(requests_post.call_args_list[0][1]['data']) == {'foo': 'bar', 'lineId': '1'}
......
1977 1979
    # qrcode
1978 1980
    endpoint = '/okina/test/subscriber/123/qrcode'
1979 1981
    with mock.patch('passerelle.utils.Request.get') as requests_get:
1980
        requests_get.return_value = utils.FakedResponse(
1982
        requests_get.return_value = tests.utils.FakedResponse(
1981 1983
            content='PNGfoo', headers={'Content-Type': 'image/png'}, status_code=200
1982 1984
        )
1983 1985
        resp = app.get(endpoint)
......
1985 1987
        assert resp.headers['content-type'] == 'image/png'
1986 1988
        assert resp.content == b'PNGfoo'
1987 1989

  
1988
        requests_get.return_value = utils.FakedResponse(
1990
        requests_get.return_value = tests.utils.FakedResponse(
1989 1991
            content=QRCODE_400, headers={'Content-Type': 'application/json'}, status_code=400
1990 1992
        )
1991 1993
        resp = app.get(endpoint, status=200)
......
1995 1997
            'Subscriber with ID 123 has no passcard number to generate qr code from.'
1996 1998
        )
1997 1999

  
1998
        requests_get.return_value = utils.FakedResponse(
2000
        requests_get.return_value = tests.utils.FakedResponse(
1999 2001
            content=QRCODE_404, headers={'Content-Type': 'application/json'}, status_code=404
2000 2002
        )
2001 2003
        resp = app.get(endpoint, status=200)
tests/test_opendatasoft.py
19 19

  
20 20
import mock
21 21
import pytest
22
import utils
23 22
from django.contrib.auth.models import User
24 23
from requests.exceptions import ConnectionError
25
from test_manager import login
26 24

  
25
import tests.utils
27 26
from passerelle.apps.opendatasoft.models import OpenDataSoft, Query
28 27
from passerelle.utils import import_site
28
from tests.test_manager import login
29 29

  
30 30
pytestmark = pytest.mark.django_db
31 31

  
......
127 127

  
128 128
@pytest.fixture
129 129
def connector():
130
    return utils.setup_access_rights(
130
    return tests.utils.setup_access_rights(
131 131
        OpenDataSoft.objects.create(
132 132
            slug='my_connector',
133 133
            service_url='http://www.example.net',
......
181 181

  
182 182
@mock.patch('passerelle.utils.Request.get')
183 183
def test_search_empty_contents(mocked_get, app, connector):
184
    endpoint = utils.generic_endpoint_url('opendatasoft', 'search', slug=connector.slug)
184
    endpoint = tests.utils.generic_endpoint_url('opendatasoft', 'search', slug=connector.slug)
185 185
    assert endpoint == '/opendatasoft/my_connector/search'
186 186

  
187 187
    # error returned by opendadasoft server
188 188
    json_response = json.dumps({'error': "The query is invalid : Field 00 doesn't exist"})
189
    mocked_get.return_value = utils.FakedResponse(content=json_response, status_code=200)
189
    mocked_get.return_value = tests.utils.FakedResponse(content=json_response, status_code=200)
190 190
    resp = app.get(endpoint, status=200)
191 191
    assert resp.json['err']
192 192
    assert resp.json['err_desc'] == "The query is invalid : Field 00 doesn't exist"
......
194 194

  
195 195
@mock.patch('passerelle.utils.Request.get')
196 196
def test_search(mocked_get, app, connector):
197
    endpoint = utils.generic_endpoint_url('opendatasoft', 'search', slug=connector.slug)
197
    endpoint = tests.utils.generic_endpoint_url('opendatasoft', 'search', slug=connector.slug)
198 198
    assert endpoint == '/opendatasoft/my_connector/search'
199 199
    params = {
200 200
        'dataset': 'referentiel-adresse-test',
......
202 202
        'sort': '-nom_rue',
203 203
        'limit': 3,
204 204
    }
205
    mocked_get.return_value = utils.FakedResponse(content=FAKED_CONTENT_Q_SEARCH, status_code=200)
205
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKED_CONTENT_Q_SEARCH, status_code=200)
206 206
    resp = app.get(endpoint, params=params, status=200)
207 207
    assert mocked_get.call_args[1]['params'] == {
208 208
        'apikey': 'my_secret',
......
230 230

  
231 231
@mock.patch('passerelle.utils.Request.get')
232 232
def test_search_using_q(mocked_get, app, connector):
233
    endpoint = utils.generic_endpoint_url('opendatasoft', 'search', slug=connector.slug)
233
    endpoint = tests.utils.generic_endpoint_url('opendatasoft', 'search', slug=connector.slug)
234 234
    assert endpoint == '/opendatasoft/my_connector/search'
235 235
    params = {
236 236
        'dataset': 'referentiel-adresse-test',
......
239 239
        'limit': '3',
240 240
        'q': "rue de l'aubepine",
241 241
    }
242
    mocked_get.return_value = utils.FakedResponse(content=FAKED_CONTENT_Q_SEARCH, status_code=200)
242
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKED_CONTENT_Q_SEARCH, status_code=200)
243 243
    resp = app.get(endpoint, params=params, status=200)
244 244
    assert mocked_get.call_args[1]['params'] == {
245 245
        'apikey': 'my_secret',
......
267 267

  
268 268
@mock.patch('passerelle.utils.Request.get')
269 269
def test_search_using_id(mocked_get, app, connector):
270
    endpoint = utils.generic_endpoint_url('opendatasoft', 'search', slug=connector.slug)
270
    endpoint = tests.utils.generic_endpoint_url('opendatasoft', 'search', slug=connector.slug)
271 271
    assert endpoint == '/opendatasoft/my_connector/search'
272 272
    params = {
273 273
        'dataset': 'referentiel-adresse-test',
274 274
        'text_template': '{{numero}} {{nom_rue}} {{nom_commun}}',
275 275
        'id': '7cafcd5c692773e8b863587b2d38d6be82e023d8',
276 276
    }
277
    mocked_get.return_value = utils.FakedResponse(content=FAKED_CONTENT_ID_SEARCH, status_code=200)
277
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKED_CONTENT_ID_SEARCH, status_code=200)
278 278
    resp = app.get(endpoint, params=params, status=200)
279 279
    assert mocked_get.call_args[1]['params'] == {
280 280
        'apikey': 'my_secret',
......
291 291
    params = {
292 292
        'limit': 3,
293 293
    }
294
    mocked_get.return_value = utils.FakedResponse(content=FAKED_CONTENT_Q_SEARCH, status_code=200)
294
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKED_CONTENT_Q_SEARCH, status_code=200)
295 295
    resp = app.get(endpoint, params=params, status=200)
296 296
    assert mocked_get.call_args[1]['params'] == {
297 297
        'apikey': 'my_secret',
......
325 325
    params = {
326 326
        'q': "rue de l'aubepine",
327 327
    }
328
    mocked_get.return_value = utils.FakedResponse(content=FAKED_CONTENT_Q_SEARCH, status_code=200)
328
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKED_CONTENT_Q_SEARCH, status_code=200)
329 329
    resp = app.get(endpoint, params=params, status=200)
330 330
    assert mocked_get.call_args[1]['params'] == {
331 331
        'apikey': 'my_secret',
......
359 359
    params = {
360 360
        'id': '7cafcd5c692773e8b863587b2d38d6be82e023d8',
361 361
    }
362
    mocked_get.return_value = utils.FakedResponse(content=FAKED_CONTENT_ID_SEARCH, status_code=200)
362
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKED_CONTENT_ID_SEARCH, status_code=200)
363 363
    resp = app.get(endpoint, params=params, status=200)
364 364
    assert mocked_get.call_args[1]['params'] == {
365 365
        'apikey': 'my_secret',
......
437 437
    content['records'][0]['fields']['text'] = 'original text'
438 438
    query.text_template = '{{id}} - {{original_id}} - {{original_text}}'
439 439
    query.save()
440
    mocked_get.return_value = utils.FakedResponse(content=json.dumps(content), status_code=200)
440
    mocked_get.return_value = tests.utils.FakedResponse(content=json.dumps(content), status_code=200)
441 441
    resp = app.get(endpoint, params=params, status=200)
442 442
    assert resp.json['data'][0]['original_id'] == 'original id'
443 443
    assert resp.json['data'][0]['original_text'] == 'original text'
......
448 448

  
449 449

  
450 450
def test_call_search_errors(app, connector):
451
    endpoint = utils.generic_endpoint_url('opendatasoft', 'search', slug=connector.slug)
451
    endpoint = tests.utils.generic_endpoint_url('opendatasoft', 'search', slug=connector.slug)
452 452
    assert endpoint == '/opendatasoft/my_connector/search'
453 453
    url = connector.service_url + '/api/records/1.0/search/'
454 454

  
455 455
    # Connection error
456 456
    exception = ConnectionError('Remote end closed connection without response')
457
    with utils.mock_url(url=url, exception=exception):
457
    with tests.utils.mock_url(url=url, exception=exception):
458 458
        resp = app.get(endpoint)
459 459
    assert resp.json['err']
460 460
    assert resp.json['err_desc'] == 'OpenDataSoft error: Remote end closed connection without response'
461 461

  
462 462
    # API error, provides HTTP status code
463
    with utils.mock_url(url=url, response='{"error": "Unknown dataset: foo"}', status_code=404):
463
    with tests.utils.mock_url(url=url, response='{"error": "Unknown dataset: foo"}', status_code=404):
464 464
        resp = app.get(endpoint)
465 465
    assert resp.json['err']
466 466
    assert resp.json['err_desc'] == 'Unknown dataset: foo'
467 467

  
468 468
    # HTTP error
469
    with utils.mock_url(url=url, response='not a json content', reason='Not Found', status_code=404):
469
    with tests.utils.mock_url(url=url, response='not a json content', reason='Not Found', status_code=404):
470 470
        resp = app.get(endpoint)
471 471
    assert resp.json['err']
472 472
    assert 'OpenDataSoft error: 404 Client Error: Not Found' in resp.json['err_desc']
473 473

  
474 474
    # bad JSON response
475
    with utils.mock_url(url=url, response='not a json content', status_code=200):
475
    with tests.utils.mock_url(url=url, response='not a json content', status_code=200):
476 476
        resp = app.get(endpoint)
477 477
    assert resp.json['err']
478 478
    assert resp.json['err_desc'] == 'OpenDataSoft error: bad JSON response'
tests/test_opengis.py
2 2

  
3 3
import mock
4 4
import pytest
5
import utils
6 5
from django.contrib.auth.models import User
7 6
from django.core.management import call_command
8
from test_manager import login
9 7

  
8
import tests.utils
10 9
from passerelle.apps.opengis.models import FeatureCache, OpenGIS, Query
11 10
from passerelle.base.models import Job
12 11
from passerelle.utils import import_site
12
from tests.test_manager import login
13 13

  
14 14
pytestmark = pytest.mark.django_db
15 15

  
......
357 357

  
358 358
@pytest.fixture
359 359
def connector():
360
    return utils.setup_access_rights(
360
    return tests.utils.setup_access_rights(
361 361
        OpenGIS.objects.create(
362 362
            slug='test', wms_service_url='http://example.net/wms', wfs_service_url='http://example.net/wfs'
363 363
        )
......
382 382
def geoserver_responses(url, **kwargs):
383 383
    if kwargs['params'].get('request') == 'GetCapabilities':
384 384
        assert kwargs['params'].get('service')
385
        return utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
386
    return utils.FakedResponse(status_code=200, content=FAKE_FEATURES_JSON)
385
        return tests.utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
386
    return tests.utils.FakedResponse(status_code=200, content=FAKE_FEATURES_JSON)
387 387

  
388 388

  
389 389
def geoserver_responses_v1_0_0(url, **kwargs):
390 390
    if kwargs['params'].get('request') == 'GetCapabilities':
391 391
        assert kwargs['params'].get('service')
392
        return utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES_V1_0_0)
393
    return utils.FakedResponse(status_code=200, content=FAKE_FEATURES_JSON)
392
        return tests.utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES_V1_0_0)
393
    return tests.utils.FakedResponse(status_code=200, content=FAKE_FEATURES_JSON)
394 394

  
395 395

  
396 396
def geoserver_responses_errors(url, **kwargs):
397 397
    if kwargs['params'].get('request') == 'GetCapabilities':
398
        return utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
399
    return utils.FakedResponse(status_code=200, content=FAKE_ERROR)
398
        return tests.utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
399
    return tests.utils.FakedResponse(status_code=200, content=FAKE_ERROR)
400 400

  
401 401

  
402 402
def geoserver_responses_errors_unparsable(url, **kwargs):
403 403
    if kwargs['params'].get('request') == 'GetCapabilities':
404
        return utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
405
    return utils.FakedResponse(status_code=200, content=FAKE_ERROR[:10])
404
        return tests.utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
405
    return tests.utils.FakedResponse(status_code=200, content=FAKE_ERROR[:10])
406 406

  
407 407

  
408 408
def geoserver_geolocated_responses(url, **kwargs):
409 409
    if kwargs['params'].get('request') == 'GetCapabilities':
410
        return utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
411
    return utils.FakedResponse(status_code=200, content=FAKE_GEOLOCATED_FEATURE)
410
        return tests.utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
411
    return tests.utils.FakedResponse(status_code=200, content=FAKE_GEOLOCATED_FEATURE)
412 412

  
413 413

  
414 414
def geoserver_circle_responses(url, **kwargs):
415 415
    if kwargs['params'].get('request') == 'GetCapabilities':
416
        return utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
417
    return utils.FakedResponse(status_code=200, content=json.dumps(FAKE_GEOLOCATED_FEATURE_CIRCLE))
416
        return tests.utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
417
    return tests.utils.FakedResponse(status_code=200, content=json.dumps(FAKE_GEOLOCATED_FEATURE_CIRCLE))
418 418

  
419 419

  
420 420
@mock.patch('passerelle.utils.Request.get')
421 421
def test_feature_info(mocked_get, app, connector):
422
    endpoint = utils.generic_endpoint_url('opengis', 'feature_info', slug=connector.slug)
422
    endpoint = tests.utils.generic_endpoint_url('opengis', 'feature_info', slug=connector.slug)
423 423
    assert endpoint == '/opengis/test/feature_info'
424
    mocked_get.return_value = utils.FakedResponse(content=FAKE_FEATURE_INFO, status_code=200)
424
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKE_FEATURE_INFO, status_code=200)
425 425
    resp = app.get(endpoint, params={'lat': '45.796890', 'lon': '4.784140'})
426 426
    assert (
427 427
        mocked_get.call_args[1]['params']['bbox']
......
450 450
    ],
451 451
)
452 452
def test_feature_info_bad_request(mocked_get, app, connector, lat, lon):
453
    endpoint = utils.generic_endpoint_url('opengis', 'feature_info', slug=connector.slug)
453
    endpoint = tests.utils.generic_endpoint_url('opengis', 'feature_info', slug=connector.slug)
454 454
    assert endpoint == '/opengis/test/feature_info'
455
    mocked_get.return_value = utils.FakedResponse(content=FAKE_FEATURE_INFO, status_code=200)
455
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKE_FEATURE_INFO, status_code=200)
456 456
    resp = app.get(endpoint, params={'lat': lat, 'lon': lon})
457 457
    assert resp.json['err'] == 1
458 458
    assert resp.json['err_desc'] == 'Bad coordinates format'
......
460 460

  
461 461
@mock.patch('passerelle.utils.Request.get')
462 462
def test_tile(mocked_get, app, connector):
463
    endpoint = utils.generic_endpoint_url('opengis', 'tile', slug=connector.slug)
463
    endpoint = tests.utils.generic_endpoint_url('opengis', 'tile', slug=connector.slug)
464 464
    assert endpoint == '/opengis/test/tile'
465
    mocked_get.return_value = utils.FakedResponse(content=b'\x89PNG\r\n\x1a\n\x00\x00...', status_code=200)
465
    mocked_get.return_value = tests.utils.FakedResponse(
466
        content=b'\x89PNG\r\n\x1a\n\x00\x00...', status_code=200
467
    )
466 468
    resp = app.get(endpoint + '/16/33650/23378.png')
467 469
    assert mocked_get.call_args[1]['params']['crs'] == 'EPSG:3857'
468 470
    assert (
......
481 483
def test_get_feature_with_no_wfs_url(mocked_get, app, connector):
482 484
    connector.wfs_service_url = ''
483 485
    connector.save()
484
    endpoint = utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
486
    endpoint = tests.utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
485 487
    assert endpoint == '/opengis/test/features'
486 488
    mocked_get.side_effect = geoserver_responses
487 489
    resp = app.get(endpoint, params={'type_names': 'ref_metro_limites_communales', 'property_name': 'nom'})
......
492 494

  
493 495
@mock.patch('passerelle.utils.Request.get')
494 496
def test_get_feature(mocked_get, app, connector):
495
    endpoint = utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
497
    endpoint = tests.utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
496 498
    assert endpoint == '/opengis/test/features'
497 499
    mocked_get.side_effect = geoserver_responses
498 500
    resp = app.get(endpoint, params={'type_names': 'ref_metro_limites_communales', 'property_name': 'nom'})
......
509 511

  
510 512
@mock.patch('passerelle.utils.Request.get')
511 513
def test_get_filtered_feature(mocked_get, app, connector):
512
    endpoint = utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
514
    endpoint = tests.utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
513 515
    mocked_get.side_effect = geoserver_responses
514 516
    app.get(
515 517
        endpoint,
......
524 526

  
525 527
@mock.patch('passerelle.utils.Request.get')
526 528
def test_get_filtered_by_property_feature(mocked_get, app, connector):
527
    endpoint = utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
529
    endpoint = tests.utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
528 530
    mocked_get.side_effect = geoserver_responses
529 531
    params = {
530 532
        'type_names': 'ref_metro_limites_communales',
......
550 552

  
551 553
@mock.patch('passerelle.utils.Request.get')
552 554
def test_get_feature_error(mocked_get, app, connector):
553
    endpoint = utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
555
    endpoint = tests.utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
554 556
    assert endpoint == '/opengis/test/features'
555 557
    mocked_get.side_effect = geoserver_responses_errors
556 558
    resp = app.get(endpoint, params={'type_names': 'ref_metro_limites_communales', 'property_name': 'nom'})
......
568 570

  
569 571
@mock.patch('passerelle.utils.Request.get')
570 572
def test_get_feature_error2(mocked_get, app, connector):
571
    endpoint = utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
573
    endpoint = tests.utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
572 574
    assert endpoint == '/opengis/test/features'
573 575
    mocked_get.side_effect = geoserver_responses_errors_unparsable
574 576
    resp = app.get(endpoint, params={'type_names': 'ref_metro_limites_communales', 'property_name': 'nom'})
......
590 592
)
591 593
@mock.patch('passerelle.utils.Request.get')
592 594
def test_typename_parameter_upgrade(mocked_get, server_responses, version, typename_label, app, connector):
593
    endpoint = utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
595
    endpoint = tests.utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
594 596
    assert endpoint == '/opengis/test/features'
595 597
    mocked_get.side_effect = server_responses
596 598
    resp = app.get(endpoint, params={'type_names': '...', 'property_name': '...'})
......
604 606
    connector.search_radius = 45
605 607
    connector.projection = 'EPSG:3945'
606 608
    connector.save()
607
    endpoint = utils.generic_endpoint_url('opengis', 'reverse', slug=connector.slug)
609
    endpoint = tests.utils.generic_endpoint_url('opengis', 'reverse', slug=connector.slug)
608 610
    assert endpoint == '/opengis/test/reverse'
609 611

  
610 612
    def side_effect(url, **kwargs):
611 613
        if kwargs['params'].get('request') == 'GetCapabilities':
612
            return utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
614
            return tests.utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
613 615
        return mock.DEFAULT
614 616

  
615 617
    mocked_get.side_effect = side_effect
616
    mocked_get.return_value = utils.FakedResponse(content=FAKE_GEOLOCATED_FEATURE, status_code=200)
618
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKE_GEOLOCATED_FEATURE, status_code=200)
617 619
    resp = app.get(endpoint, params={'lat': '45.1893469606986', 'lon': '5.72462060798'})
618 620
    assert (
619 621
        mocked_get.call_args[1]['params']['cql_filter']
......
640 642
    connector.projection = 'EPSG:4326'
641 643
    connector.search_radius = 10
642 644
    connector.save()
643
    mocked_get.return_value = utils.FakedResponse(content='{"features": []}', status_code=200)
645
    mocked_get.return_value = tests.utils.FakedResponse(content='{"features": []}', status_code=200)
644 646
    resp = app.get(endpoint, params={'lat': '45.183784', 'lon': '5.714885'})
645 647
    assert (
646 648
        mocked_get.call_args[1]['params']['cql_filter']
......
649 651
    assert resp.json['err'] == 1
650 652
    assert resp.json['err_desc'] == 'Unable to geocode'
651 653

  
652
    mocked_get.return_value = utils.FakedResponse(status_code=404, content='{}', ok=False)
654
    mocked_get.return_value = tests.utils.FakedResponse(status_code=404, content='{}', ok=False)
653 655
    resp = app.get(endpoint, params={'lat': '45.183784', 'lon': '5.714885'})
654 656
    assert resp.json['err'] == 1
655 657
    assert resp.json['err_desc'] == 'Webservice returned status code 404'
......
708 710

  
709 711
@mock.patch('passerelle.utils.Request.get')
710 712
def test_opengis_query_q_endpoint(mocked_get, app, connector, query):
711
    endpoint = utils.generic_endpoint_url('opengis', 'query/test_query/', slug=connector.slug)
713
    endpoint = tests.utils.generic_endpoint_url('opengis', 'query/test_query/', slug=connector.slug)
712 714
    assert endpoint == '/opengis/test/query/test_query/'
713 715
    mocked_get.side_effect = geoserver_geolocated_responses
714 716
    query.update_cache()
......
737 739

  
738 740
    def new_response(url, **kwargs):
739 741
        if kwargs['params'].get('request') == 'GetCapabilities':
740
            return utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
741
        return utils.FakedResponse(
742
            return tests.utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
743
        return tests.utils.FakedResponse(
742 744
            content='{"features": [{"properties": {}, "geometry": {"coordinates": [1, 1], "type": "Point"}}]}',
743 745
            status_code=200,
744 746
        )
......
750 752

  
751 753
@mock.patch('passerelle.utils.Request.get')
752 754
def test_opengis_query_q_endpoint_cache_empty(mocked_get, app, connector, query):
753
    endpoint = utils.generic_endpoint_url('opengis', 'query/test_query/', slug=connector.slug)
755
    endpoint = tests.utils.generic_endpoint_url('opengis', 'query/test_query/', slug=connector.slug)
754 756
    assert not FeatureCache.objects.exists()
755 757
    resp = app.get(endpoint)
756 758

  
......
818 820

  
819 821
@mock.patch('passerelle.utils.Request.get')
820 822
def test_opengis_query_text_search(mocked_get, app, connector, query):
821
    endpoint = utils.generic_endpoint_url('opengis', 'query/test_query/', slug=connector.slug)
823
    endpoint = tests.utils.generic_endpoint_url('opengis', 'query/test_query/', slug=connector.slug)
822 824
    mocked_get.side_effect = geoserver_geolocated_responses
823 825
    query.update_cache()
824 826

  
......
852 854

  
853 855
@mock.patch('passerelle.utils.Request.get')
854 856
def test_opengis_query_circle_filtering(mocked_get, app, connector, query):
855
    endpoint = utils.generic_endpoint_url('opengis', 'query/test_query/', slug=connector.slug)
857
    endpoint = tests.utils.generic_endpoint_url('opengis', 'query/test_query/', slug=connector.slug)
856 858
    mocked_get.side_effect = geoserver_circle_responses
857 859
    query.update_cache()
858 860

  
......
874 876

  
875 877
@mock.patch('passerelle.utils.Request.get')
876 878
def test_opengis_query_data_filter(mocked_get, app, connector, query):
877
    endpoint = utils.generic_endpoint_url('opengis', 'query/test_query/', slug=connector.slug)
879
    endpoint = tests.utils.generic_endpoint_url('opengis', 'query/test_query/', slug=connector.slug)
878 880
    mocked_get.side_effect = geoserver_geolocated_responses
879 881
    query.update_cache()
880 882

  
tests/test_phonecalls.py
1 1
import re
2 2

  
3 3
import pytest
4
import utils
5 4
from django.contrib.contenttypes.models import ContentType
6 5
from django.utils.timezone import now, timedelta
7 6

  
7
import tests.utils
8 8
from passerelle.apps.phonecalls.models import Call, PhoneCalls
9 9
from passerelle.base.models import AccessRight, ApiUser
10 10

  
......
21 21

  
22 22

  
23 23
def test_phonecalls_start_stop(app, phonecalls):
24
    start_endpoint = utils.generic_endpoint_url('phonecalls', 'call-start', slug=phonecalls.slug)
24
    start_endpoint = tests.utils.generic_endpoint_url('phonecalls', 'call-start', slug=phonecalls.slug)
25 25
    assert start_endpoint == '/phonecalls/test/call-start'
26
    stop_endpoint = utils.generic_endpoint_url('phonecalls', 'call-stop', slug=phonecalls.slug)
26
    stop_endpoint = tests.utils.generic_endpoint_url('phonecalls', 'call-stop', slug=phonecalls.slug)
27 27
    assert stop_endpoint == '/phonecalls/test/call-stop'
28
    calls_endpoint = utils.generic_endpoint_url('phonecalls', 'calls', slug=phonecalls.slug)
28
    calls_endpoint = tests.utils.generic_endpoint_url('phonecalls', 'calls', slug=phonecalls.slug)
29 29
    assert calls_endpoint == '/phonecalls/test/calls'
30 30

  
31 31
    resp = app.get(start_endpoint, status=403)
......
212 212
    phonecalls.save()
213 213

  
214 214
    assert Call.objects.count() == 0
215
    start_endpoint = utils.generic_endpoint_url('phonecalls', 'call-start', slug=phonecalls.slug)
215
    start_endpoint = tests.utils.generic_endpoint_url('phonecalls', 'call-start', slug=phonecalls.slug)
216 216
    resp = app.get(
217 217
        start_endpoint,
218 218
        status=302,
......
227 227
    phonecalls.save()
228 228

  
229 229
    assert Call.objects.count() == 0
230
    start_endpoint = utils.generic_endpoint_url('phonecalls', 'call-start', slug=phonecalls.slug)
230
    start_endpoint = tests.utils.generic_endpoint_url('phonecalls', 'call-start', slug=phonecalls.slug)
231 231
    resp = app.get(
232 232
        start_endpoint,
233 233
        status=200,
......
242 242
    phonecalls.redirect_url = 'https://portail-agent.publik/'
243 243
    phonecalls.save()
244 244

  
245
    start_endpoint = utils.generic_endpoint_url('phonecalls', 'call-start', slug=phonecalls.slug)
245
    start_endpoint = tests.utils.generic_endpoint_url('phonecalls', 'call-start', slug=phonecalls.slug)
246 246
    resp = app.get(
247 247
        start_endpoint,
248 248
        status=302,
tests/test_photon.py
19 19

  
20 20
import mock
21 21
import pytest
22
import utils
23 22
from django.core.management import call_command
24 23
from httmock import HTTMock, remember_called, response, urlmatch
25 24
from requests.exceptions import ConnectionError, HTTPError
26 25

  
26
import tests.utils
27 27
from passerelle.apps.photon.models import AddressCacheModel, Photon
28 28

  
29 29
CONTENT = {
......
93 93

  
94 94
@pytest.fixture
95 95
def photon(db):
96
    return utils.setup_access_rights(
96
    return tests.utils.setup_access_rights(
97 97
        Photon.objects.create(
98 98
            slug='test',
99 99
            service_url='http://example.net/path/',
......
103 103

  
104 104
@mock.patch('passerelle.utils.Request.get')
105 105
def test_photon_search(mocked_get, app, photon):
106
    endpoint = utils.generic_endpoint_url('photon', 'search', slug=photon.slug)
107
    mocked_get.return_value = utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
106
    endpoint = tests.utils.generic_endpoint_url('photon', 'search', slug=photon.slug)
107
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
108 108
    resp = app.get(endpoint, params={'q': 'plop'}, status=200)
109 109
    assert mocked_get.call_args[0][0].startswith('http://example.net/path/api/?')
110 110
    data = resp.json[0]
......
169 169
    def raise_for_status():
170 170
        raise HTTPError("400 Client Error: Bad Request for url: xxx")
171 171

  
172
    response = utils.FakedResponse(content=json.dumps({'title': 'error'}), status_code=400)
172
    response = tests.utils.FakedResponse(content=json.dumps({'title': 'error'}), status_code=400)
173 173
    response.raise_for_status = raise_for_status
174 174
    mocked_get.return_value = response
175 175
    resp = app.get('/photon/%s/search' % photon.slug, params={'q': 'plop'}, status=200)
......
183 183

  
184 184
@mock.patch('passerelle.utils.Request.get')
185 185
def test_photon_reverse_path(mocked_get, app, photon):
186
    mocked_get.return_value = utils.FakedResponse(content=json.dumps({'features': []}), status_code=200)
186
    mocked_get.return_value = tests.utils.FakedResponse(content=json.dumps({'features': []}), status_code=200)
187 187
    app.get('/photon/%s/reverse?lon=4.8522272&lat=45.7587414' % photon.slug)
188 188
    assert mocked_get.call_args[0][0].startswith('http://example.net/path/reverse/?')
189 189

  
......
199 199

  
200 200
@mock.patch('passerelle.utils.Request.get')
201 201
def test_photon_addresses(mocked_get, app, photon):
202
    endpoint = utils.generic_endpoint_url('photon', 'addresses', slug=photon.slug)
202
    endpoint = tests.utils.generic_endpoint_url('photon', 'addresses', slug=photon.slug)
203 203
    assert endpoint == '/photon/test/addresses'
204
    mocked_get.return_value = utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
204
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
205 205
    resp = app.get(endpoint, params={'q': 'plop'}, status=200)
206 206
    data = resp.json['data'][0]
207 207
    assert data['lat'] == '45.7587414'
......
273 273

  
274 274
@mock.patch('passerelle.utils.Request.get')
275 275
def test_photon_addresses_data_change(mocked_get, app, photon):
276
    endpoint = utils.generic_endpoint_url('photon', 'addresses', slug=photon.slug)
277
    mocked_get.return_value = utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
276
    endpoint = tests.utils.generic_endpoint_url('photon', 'addresses', slug=photon.slug)
277
    mocked_get.return_value = tests.utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
278 278

  
279 279
    # one user selects an address
280 280
    resp = app.get(endpoint, params={'q': 'plop'}, status=200)
......
284 284
    # another requests the same while upstream data has been updated
285 285
    new_content = json.loads(FAKED_CONTENT)
286 286
    new_content['features'][0]['properties']['housenumber'] = 'changed'
287
    mocked_get.return_value = utils.FakedResponse(content=json.dumps(new_content), status_code=200)
287
    mocked_get.return_value = tests.utils.FakedResponse(content=json.dumps(new_content), status_code=200)
288 288
    resp = app.get(endpoint, params={'q': 'plop'}, status=200)
289 289

  
290 290
    # first user saves the form, data should not have changed
tests/test_plone_restapi.py
19 19
import os
20 20

  
21 21
import pytest
22
import utils
23 22
from requests.exceptions import ConnectionError
24
from test_manager import login
25 23

  
24
import tests.utils
26 25
from passerelle.apps.plone_restapi.models import PloneRestApi, Query
27 26
from passerelle.utils import import_site
28 27
from passerelle.utils.jsonresponse import APIError
28
from tests.test_manager import login
29 29

  
30 30
pytestmark = pytest.mark.django_db
31 31

  
......
51 51

  
52 52
@pytest.fixture
53 53
def connector():
54
    return utils.setup_access_rights(
54
    return tests.utils.setup_access_rights(
55 55
        PloneRestApi.objects.create(
56 56
            slug='my_connector',
57 57
            service_url='http://www.example.net',
......
66 66

  
67 67
@pytest.fixture
68 68
def token(connector):
69
    with utils.mock_url(url=connector.token_ws_url, response=TOKEN_RESPONSE) as mocked:
69
    with tests.utils.mock_url(url=connector.token_ws_url, response=TOKEN_RESPONSE) as mocked:
70 70
        yield mocked
71 71

  
72 72

  
......
210 210

  
211 211
def test_get_token(app, connector):
212 212
    with pytest.raises(APIError):
213
        with utils.mock_url(url=connector.token_ws_url, response=TOKEN_ERROR_RESPONSE, status_code=404):
213
        with tests.utils.mock_url(url=connector.token_ws_url, response=TOKEN_ERROR_RESPONSE, status_code=404):
214 214
            connector.get_token()
215
    with utils.mock_url(url=connector.token_ws_url, response=TOKEN_RESPONSE) as mocked:
215
    with tests.utils.mock_url(url=connector.token_ws_url, response=TOKEN_RESPONSE) as mocked:
216 216
        result = connector.get_token()
217 217
        assert mocked.handlers[0].call['count'] == 1
218 218
        assert 'secret' in mocked.handlers[0].call['requests'][0].body
......
227 227

  
228 228
def test_check_status(app, connector):
229 229
    url = connector.service_url + '/@types'
230
    with utils.mock_url(url=connector.token_ws_url, response=TOKEN_RESPONSE):
231
        with utils.mock_url(url=url, response={}):
230
    with tests.utils.mock_url(url=connector.token_ws_url, response=TOKEN_RESPONSE):
231
        with tests.utils.mock_url(url=url, response={}):
232 232
            connector.check_status()
233 233

  
234 234
    # idp not responding
235
    with utils.mock_url(url=connector.token_ws_url, response={}, status_code=503):
235
    with tests.utils.mock_url(url=connector.token_ws_url, response={}, status_code=503):
236 236
        with pytest.raises(APIError):
237 237
            connector.check_status()
238 238

  
239 239
    # plone not responding
240
    with utils.mock_url(url=connector.token_ws_url, response=TOKEN_RESPONSE):
241
        with utils.mock_url(url=url, response={}, status_code=503):
240
    with tests.utils.mock_url(url=connector.token_ws_url, response=TOKEN_RESPONSE):
241
        with tests.utils.mock_url(url=url, response={}, status_code=503):
242 242
            with pytest.raises(APIError):
243 243
                connector.check_status()
244 244

  
245 245
    # without idp
246 246
    connector.token_ws_url = ''
247 247
    connector.save()
248
    with utils.mock_url(url=url, response={}):
248
    with tests.utils.mock_url(url=url, response={}):
249 249
        connector.check_status()
250 250

  
251 251
    # plone not responding
252
    with utils.mock_url(url=url, response={}, status_code=503):
252
    with tests.utils.mock_url(url=url, response={}, status_code=503):
253 253
        with pytest.raises(APIError):
254 254
            connector.check_status()
255 255

  
256 256

  
257 257
def test_fetch(app, connector, token):
258
    endpoint = utils.generic_endpoint_url('plone-restapi', 'fetch', slug=connector.slug)
258
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'fetch', slug=connector.slug)
259 259
    assert endpoint == '/plone-restapi/my_connector/fetch'
260 260
    url = connector.service_url + '/braine-l-alleud/dccd85d12cf54b6899dff41e5a56ee7f'
261 261
    params = {
......
263 263
        'uri': 'braine-l-alleud',
264 264
        'text_template': '{{ title }} ({{ topics.0.title }})',
265 265
    }
266
    with utils.mock_url(url=url, response=json_get_data('fetch')):
266
    with tests.utils.mock_url(url=url, response=json_get_data('fetch')):
267 267
        resp = app.get(endpoint, params=params)
268 268
    assert not resp.json['err']
269 269
    assert resp.json['data']['id'] == 'dccd85d12cf54b6899dff41e5a56ee7f'
......
276 276
    connector.basic_auth_username = 'jsmith'
277 277
    connector.basic_auth_password = 'secret2'
278 278
    connector.save()
279
    endpoint = utils.generic_endpoint_url('plone-restapi', 'fetch', slug=connector.slug)
279
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'fetch', slug=connector.slug)
280 280
    assert endpoint == '/plone-restapi/my_connector/fetch'
281 281
    url = connector.service_url + '/braine-l-alleud/dccd85d12cf54b6899dff41e5a56ee7f'
282 282
    params = {
......
284 284
        'uri': 'braine-l-alleud',
285 285
        'text_template': '{{ title }} ({{ topics.0.title }})',
286 286
    }
287
    with utils.mock_url(url=url, response=json_get_data('fetch')) as mocked_get:
287
    with tests.utils.mock_url(url=url, response=json_get_data('fetch')) as mocked_get:
288 288
        resp = app.get(endpoint, params=params)
289 289
        assert mocked_get.handlers[0].call['count'] == 1
290 290
        assert 'Basic' in mocked_get.handlers[0].call['requests'][0].headers['Authorization']
......
297 297
def test_request_anonymously(app, connector, token):
298 298
    connector.token_ws_url = ''
299 299
    connector.save()
300
    endpoint = utils.generic_endpoint_url('plone-restapi', 'fetch', slug=connector.slug)
300
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'fetch', slug=connector.slug)
301 301
    assert endpoint == '/plone-restapi/my_connector/fetch'
302 302
    url = connector.service_url + '/braine-l-alleud/dccd85d12cf54b6899dff41e5a56ee7f'
303 303
    params = {
......
305 305
        'uri': 'braine-l-alleud',
306 306
        'text_template': '{{ title }} ({{ topics.0.title }})',
307 307
    }
308
    with utils.mock_url(url=url, response=json_get_data('fetch')):
308
    with tests.utils.mock_url(url=url, response=json_get_data('fetch')):
309 309
        resp = app.get(endpoint, params=params)
310 310
    assert not resp.json['err']
311 311
    assert resp.json['data']['id'] == 'dccd85d12cf54b6899dff41e5a56ee7f'
......
322 322
    ],
323 323
)
324 324
def test_request_error(app, connector, token, exception, status_code, response, err_desc):
325
    endpoint = utils.generic_endpoint_url('plone-restapi', 'fetch', slug=connector.slug)
325
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'fetch', slug=connector.slug)
326 326
    assert endpoint == '/plone-restapi/my_connector/fetch'
327 327
    url = connector.service_url + '/braine-l-alleud/plop'
328 328
    params = {
......
330 330
        'uri': 'braine-l-alleud',
331 331
        'text_template': '{{ title }} ({{ PLONE_type }})',
332 332
    }
333
    with utils.mock_url(url=url, response=response, status_code=status_code, exception=exception):
333
    with tests.utils.mock_url(url=url, response=response, status_code=status_code, exception=exception):
334 334
        resp = app.get(endpoint, params=params)
335 335
    assert resp.json['err']
336 336
    assert err_desc in resp.json['err_desc']
337 337

  
338 338

  
339 339
def test_get_content_types(app, connector, token):
340
    endpoint = utils.generic_endpoint_url('plone-restapi', 'get_content_types', slug=connector.slug)
340
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'get_content_types', slug=connector.slug)
341 341
    assert endpoint == '/plone-restapi/my_connector/get_content_types'
342 342
    url = connector.service_url + '//@types'
343
    with utils.mock_url(url=url, response=json_get_data('get_content_types')):
343
    with tests.utils.mock_url(url=url, response=json_get_data('get_content_types')):
344 344
        resp = app.get(endpoint)
345 345
    assert not resp.json['err']
346 346
    assert len(resp.json['data']) == 10
......
348 348
    assert resp.json['data'][2]['text'] == 'Contact'
349 349

  
350 350
    url = connector.service_url + '/belleville/citoyens/@types'
351
    with utils.mock_url(url=url, response=json_get_data('get_content_types')):
351
    with tests.utils.mock_url(url=url, response=json_get_data('get_content_types')):
352 352
        resp = app.get(endpoint + '?uri=belleville/citoyens')
353 353
    assert not resp.json['err']
354 354

  
355 355

  
356 356
def test_get_content_type(app, connector, token):
357
    endpoint = utils.generic_endpoint_url('plone-restapi', 'get_content_type', slug=connector.slug)
357
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'get_content_type', slug=connector.slug)
358 358
    assert endpoint == '/plone-restapi/my_connector/get_content_type'
359 359
    url = connector.service_url + '/@types/imio.directory.Contact'
360 360
    params = {'id': 'imio.directory.Contact'}
361
    with utils.mock_url(url=url, response=json_get_data('get_content_type')):
361
    with tests.utils.mock_url(url=url, response=json_get_data('get_content_type')):
362 362
        resp = app.get(endpoint, params=params)
363 363
    assert not resp.json['err']
364 364
    assert resp.json['data']['title'] == 'Contact'
......
371 371

  
372 372

  
373 373
def test_get_field_choices(app, connector, token):
374
    endpoint = utils.generic_endpoint_url('plone-restapi', 'get_field_choices', slug=connector.slug)
374
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'get_field_choices', slug=connector.slug)
375 375
    assert endpoint == '/plone-restapi/my_connector/get_field_choices'
376 376
    url = connector.service_url + '/@vocabularies/imio.smartweb.vocabulary.Topics'
377 377
    params = {'id': 'imio.smartweb.vocabulary.Topics'}
378
    with utils.mock_url(url=url, response=json_get_data('get_field_choices')) as mocked_get:
378
    with tests.utils.mock_url(url=url, response=json_get_data('get_field_choices')) as mocked_get:
379 379
        resp = app.get(endpoint, params=params)
380 380
    assert 'b_size=999999' in mocked_get.handlers[0].call['requests'][1].url
381 381
    assert not resp.json['err']
......
385 385

  
386 386

  
387 387
def test_create(app, connector, token):
388
    endpoint = utils.generic_endpoint_url('plone-restapi', 'create', slug=connector.slug)
388
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'create', slug=connector.slug)
389 389
    assert endpoint == '/plone-restapi/my_connector/create'
390 390
    url = connector.service_url + '/braine-l-alleud'
391 391
    payload = {
......
397 397
        'topics/0/token': 'tourism',
398 398
        'image': {'filename': 'foo.jpg', 'content_type': 'image/jpeg', 'content': '...'},
399 399
    }
400
    with utils.mock_url(url=url, response=json_get_data('fetch'), status_code=201) as mocked:
400
    with tests.utils.mock_url(url=url, response=json_get_data('fetch'), status_code=201) as mocked:
401 401
        resp = app.post_json(endpoint + '?uri=braine-l-alleud&publish=false', params=payload)
402 402
        body = json.loads(mocked.handlers[0].call['requests'][1].body)
403 403
        assert body['topics'] == [{'title': 'Tourisme', 'token': 'tourism'}]
......
417 417

  
418 418

  
419 419
def test_create_and_publish(app, connector, token):
420
    endpoint = utils.generic_endpoint_url('plone-restapi', 'create', slug=connector.slug)
420
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'create', slug=connector.slug)
421 421
    assert endpoint == '/plone-restapi/my_connector/create'
422 422
    url = connector.service_url + '/braine-l-alleud'
423 423
    payload = {
......
430 430
        'image': {'filename': 'foo.jpg', 'content_type': 'image/jpeg', 'content': '...'},
431 431
    }
432 432
    publish_url = url + '/%s/@workflow/publish' % 'dccd85d12cf54b6899dff41e5a56ee7f'
433
    with utils.mock_url(url=url, response=json_get_data('fetch'), status_code=201) as mocked:
434
        with utils.mock_url(url=publish_url, response=json_get_data('workflow_publish'), status_code=200):
433
    with tests.utils.mock_url(url=url, response=json_get_data('fetch'), status_code=201) as mocked:
434
        with tests.utils.mock_url(
435
            url=publish_url, response=json_get_data('workflow_publish'), status_code=200
436
        ):
435 437

  
436 438
            resp = app.post_json(endpoint + '?uri=braine-l-alleud&publish=true', params=payload)
437 439
            body = json.loads(mocked.handlers[0].call['requests'][1].body)
......
452 454

  
453 455

  
454 456
def test_create_wrong_payload(app, connector, token):
455
    endpoint = utils.generic_endpoint_url('plone-restapi', 'create', slug=connector.slug)
457
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'create', slug=connector.slug)
456 458
    assert endpoint == '/plone-restapi/my_connector/create'
457 459
    url = connector.service_url + '/braine-l-alleud'
458 460
    payload = 'not json'
......
463 465

  
464 466

  
465 467
def test_update(app, connector, token):
466
    endpoint = utils.generic_endpoint_url('plone-restapi', 'update', slug=connector.slug)
468
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'update', slug=connector.slug)
467 469
    assert endpoint == '/plone-restapi/my_connector/update'
468 470
    url = connector.service_url + '/braine-l-alleud/dccd85d12cf54b6899dff41e5a56ee7f'
469 471
    query_string = '?uri=braine-l-alleud&uid=dccd85d12cf54b6899dff41e5a56ee7f'
......
472 474
        'topics/0/token': 'social',
473 475
        'image': {'filename': 'foo.jpg', 'content_type': 'image/jpeg', 'content': '...'},
474 476
    }
475
    with utils.mock_url(url=url, response='', status_code=204) as mocked:
477
    with tests.utils.mock_url(url=url, response='', status_code=204) as mocked:
476 478
        resp = app.post_json(endpoint + query_string, params=payload)
477 479
        body = json.loads(mocked.handlers[0].call['requests'][1].body)
478 480
        assert body['topics'] == [{'token': 'social'}]
......
488 490

  
489 491

  
490 492
def test_update_wrong_payload(app, connector, token):
491
    endpoint = utils.generic_endpoint_url('plone-restapi', 'update', slug=connector.slug)
493
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'update', slug=connector.slug)
492 494
    assert endpoint == '/plone-restapi/my_connector/update'
493 495
    url = connector.service_url + '/braine-l-alleud/dccd85d12cf54b6899dff41e5a56ee7f'
494 496
    query_string = '?uri=braine-l-alleud&uid=dccd85d12cf54b6899dff41e5a56ee7f'
......
500 502

  
501 503

  
502 504
def test_remove(app, connector, token):
503
    endpoint = utils.generic_endpoint_url('plone-restapi', 'remove', slug=connector.slug)
505
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'remove', slug=connector.slug)
504 506
    assert endpoint == '/plone-restapi/my_connector/remove'
505 507
    url = connector.service_url + '/braine-l-alleud/dccd85d12cf54b6899dff41e5a56ee7f'
506 508
    query_string = '?uri=braine-l-alleud&uid=dccd85d12cf54b6899dff41e5a56ee7f'
507
    with utils.mock_url(url=url, response='', status_code=204):
509
    with tests.utils.mock_url(url=url, response='', status_code=204):
508 510
        resp = app.delete(endpoint + query_string)
509 511
    assert resp.json['data'] == {'uid': 'dccd85d12cf54b6899dff41e5a56ee7f', 'removed': True}
510 512
    assert not resp.json['err']
511 513

  
512 514

  
513 515
def test_search(app, connector, token):
514
    endpoint = utils.generic_endpoint_url('plone-restapi', 'search', slug=connector.slug)
516
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'search', slug=connector.slug)
515 517
    assert endpoint == '/plone-restapi/my_connector/search'
516 518
    url = connector.service_url + '/braine-l-alleud/@search'
517 519
    params = {
......
522 524
        'limit': 3,
523 525
    }
524 526
    qs = {}
525
    with utils.mock_url(url=url, response=json_get_data('q_search'), qs=qs):
527
    with tests.utils.mock_url(url=url, response=json_get_data('q_search'), qs=qs):
526 528
        resp = app.get(endpoint, params=params)
527 529
    assert token.handlers[0].call['count'] == 1
528 530
    assert qs == {'sort_on': 'UID', 'sort_order': 'descending', 'b_size': '3', 'fullobjects': 'y'}
......
545 547

  
546 548

  
547 549
def test_search_using_q(app, connector, token):
548
    endpoint = utils.generic_endpoint_url('plone-restapi', 'search', slug=connector.slug)
550
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'search', slug=connector.slug)
549 551
    assert endpoint == '/plone-restapi/my_connector/search'
550 552
    url = connector.service_url + '/braine-l-alleud/@search'
551 553
    params = {
......
557 559
        'q': 'Página dentro',
558 560
    }
559 561
    qs = {}
560
    with utils.mock_url(url=url, response=json_get_data('q_search'), qs=qs):
562
    with tests.utils.mock_url(url=url, response=json_get_data('q_search'), qs=qs):
561 563
        resp = app.get(endpoint, params=params)
562 564
    assert qs == {
563 565
        'SearchableText': 'Página dentro',
......
585 587

  
586 588

  
587 589
def test_search_using_id(app, connector, token):
588
    endpoint = utils.generic_endpoint_url('plone-restapi', 'search', slug=connector.slug)
590
    endpoint = tests.utils.generic_endpoint_url('plone-restapi', 'search', slug=connector.slug)
589 591
    assert endpoint == '/plone-restapi/my_connector/search'
590 592
    url = connector.service_url + '/braine-l-alleud/@search'
591 593
    params = {
......
594 596
        'id': '9fbb2afd499e465983434f974fce8404',
595 597
    }
596 598
    qs = {}
597
    with utils.mock_url(url=url, response=json_get_data('id_search'), qs=qs):
599
    with tests.utils.mock_url(url=url, response=json_get_data('id_search'), qs=qs):
598 600
        resp = app.get(endpoint, params=params)
599 601
    assert qs == {'UID': '9fbb2afd499e465983434f974fce8404', 'fullobjects': 'y'}
600 602
    assert len(resp.json['data']) == 1
......
608 610
        'limit': 3,
609 611
    }
610 612
    qs = {}
611
    with utils.mock_url(url=url, response=json_get_data('q_search'), qs=qs):
613
    with tests.utils.mock_url(url=url, response=json_get_data('q_search'), qs=qs):
612 614
        resp = app.get(endpoint, params=params)
613 615
        assert qs == {
614 616
            'sort_on': 'UID',
......
630 632
        'q': 'Página dentro',
631 633
    }
632 634
    qs = {}
633
    with utils.mock_url(url=url, response=json_get_data('q_search'), qs=qs):
635
    with tests.utils.mock_url(url=url, response=json_get_data('q_search'), qs=qs):
634 636
        resp = app.get(endpoint, params=params)
635 637
        assert qs == {
636 638
            'SearchableText': 'Página dentro',
......
653 655
        'id': '9fbb2afd499e465983434f974fce8404',
654 656
    }
655 657
    qs = {}
656
    with utils.mock_url(url=url, response=json_get_data('id_search'), qs=qs):
658
    with tests.utils.mock_url(url=url, response=json_get_data('id_search'), qs=qs):
657 659
        resp = app.get(endpoint, params=params)
658 660
    assert qs == {
659 661
        'UID': '9fbb2afd499e465983434f974fce8404',
tests/test_proxylogger.py
6 6

  
7 7
import pytest
8 8
import requests
9
import utils
10 9
from django.core.exceptions import ValidationError
11 10
from django.utils.log import AdminEmailHandler
12 11
from django.utils.six import PY2
13 12
from httmock import HTTMock
14
from test_availability import down_mock, up_mock
15 13

  
14
import tests.utils
16 15
from passerelle.apps.feeds.models import Feed
17 16
from passerelle.base.models import ProxyLogger, ResourceLog
18 17
from passerelle.contrib.stub_invoices.models import StubInvoicesConnector
19 18
from passerelle.utils.api import endpoint
20 19
from passerelle.utils.jsonresponse import APIError
20
from tests.test_availability import down_mock, up_mock
21 21

  
22 22

  
23 23
@pytest.fixture
......
302 302
    # default configuration
303 303
    assert connector.logging_parameters.requests_max_size == None
304 304
    assert connector.logging_parameters.responses_max_size == None
305
    with utils.mock_url(URL, service_response, headers=service_headers):
305
    with tests.utils.mock_url(URL, service_response, headers=service_headers):
306 306
        app.post(url, params=user_payload, status=200)
307 307
    assert len(ResourceLog.objects.all()) == 3
308 308

  
......
327 327
    connector.set_log_level('DEBUG')
328 328
    settings.LOGGED_CONTENT_TYPES_MESSAGES = 'foo/bar'  # log response content
329 329
    ResourceLog.objects.all().delete()
330
    with utils.mock_url(URL, service_response, headers=service_headers):
330
    with tests.utils.mock_url(URL, service_response, headers=service_headers):
331 331
        app.post(url, params=user_payload, status=200)
332 332
    assert len(ResourceLog.objects.all()) == 3
333 333

  
......
350 350
    parameters.requests_max_size = 25
351 351
    parameters.save()
352 352
    ResourceLog.objects.all().delete()
353
    with utils.mock_url(URL, service_response, headers=service_headers):
353
    with tests.utils.mock_url(URL, service_response, headers=service_headers):
354 354
        app.post(url, params=user_payload, status=200)
355 355
    assert len(ResourceLog.objects.all()) == 3
356 356

  
......
371 371
    parameters.responses_max_size = 25
372 372
    parameters.save()
373 373
    ResourceLog.objects.all().delete()
374
    with utils.mock_url(URL, service_response, headers=service_headers):
374
    with tests.utils.mock_url(URL, service_response, headers=service_headers):
375 375
        app.post(url, params=user_payload, status=200)
376 376
    assert len(ResourceLog.objects.all()) == 3
377 377

  
......
384 384

  
385 385
def test_proxy_logger_email_traceback(app, db, email_handler, settings, mailoutbox, connector, monkeypatch):
386 386
    settings.ADMINS = [('admin', 'admin@example.net')]
387
    endpoint_url = utils.generic_endpoint_url('feeds', 'json', slug=connector.slug)
387
    endpoint_url = tests.utils.generic_endpoint_url('feeds', 'json', slug=connector.slug)
388 388

  
389 389
    @endpoint()
390 390
    def json(self, request):
tests/test_requests.py
4 4
import mohawk
5 5
import pytest
6 6
import requests
7
import utils
8 7
from django.test import override_settings
9 8
from httmock import HTTMock, response, urlmatch
10 9
from urllib3.exceptions import ReadTimeoutError
11
from utils import FakedResponse
12 10

  
11
import tests.utils
13 12
from passerelle.utils import CaseInsensitiveDict, Request, log_http_request
14 13
from passerelle.utils.http_authenticators import HawkAuth
14
from tests.utils import FakedResponse
15 15

  
16 16

  
17 17
@pytest.fixture(autouse=True)
tests/test_rsa13.py
23 23

  
24 24
import httmock
25 25
import pytest
26
import utils
27 26

  
27
import tests.utils
28 28
from passerelle.contrib.rsa13.models import RSA13Resource
29 29

  
30 30

  
31 31
@pytest.fixture
32 32
def rsa13(db):
33
    return utils.make_resource(
33
    return tests.utils.make_resource(
34 34
        RSA13Resource,
35 35
        title='Test',
36 36
        slug='test',
tests/test_sector.py
20 20
from stat import ST_MTIME
21 21

  
22 22
import pytest
23
import utils
24 23
import webtest
25 24
from django.core.exceptions import ValidationError
26 25
from django.core.files import File
......
29 28
from django.utils.encoding import force_str, force_text
30 29
from django.utils.six import StringIO
31 30
from django.utils.timezone import now
32
from test_manager import login
33 31

  
32
import tests.utils
34 33
from passerelle.apps.sector.models import Sectorization, SectorResource
35 34
from passerelle.base.models import AccessRight
35
from tests.test_manager import login
36 36

  
37 37
CSV = """street_id,street_name,parity,min_housenumber,max_housenumber,sector_id,sector_name
38 38
75114_1912,rue du Château,P,,, gs-moulin, Groupe Scolaire Moulin
......
77 77

  
78 78
@pytest.fixture
79 79
def sector(db):
80
    return utils.setup_access_rights(
80
    return tests.utils.setup_access_rights(
81 81
        SectorResource.objects.create(
82 82
            slug='test',
83 83
            title='title',
tests/test_sigerly.py
19 19

  
20 20
import httmock
21 21
import pytest
22
import utils
23 22

  
23
import tests.utils
24 24
from passerelle.contrib.sigerly.models import Sigerly
25 25

  
26 26
TEST_BASE_DIR = os.path.join(os.path.dirname(__file__), 'data', 'sigerly')
......
28 28

  
29 29
@pytest.fixture
30 30
def connector(db):
31
    return utils.setup_access_rights(
31
    return tests.utils.setup_access_rights(
32 32
        Sigerly.objects.create(slug='test', base_url='https://sigerly.example.net')
33 33
    )
34 34

  
......
39 39

  
40 40

  
41 41
def get_endpoint(name):
42
    return utils.generic_endpoint_url('sigerly', name)
42
    return tests.utils.generic_endpoint_url('sigerly', name)
43 43

  
44 44

  
45 45
@pytest.mark.parametrize(
tests/test_sms.py
19 19
import isodate
20 20
import mock
21 21
import pytest
22
import utils
23 22
from django.conf import settings
24 23
from django.contrib.contenttypes.models import ContentType
25 24
from django.urls import reverse
26 25
from django.utils.translation import ugettext as _
27 26
from requests import RequestException
28
from test_manager import login
29
from utils import FakedResponse
30 27

  
28
import tests.utils
31 29
from passerelle.apps.choosit.models import ChoositSMSGateway
32 30
from passerelle.apps.ovh.models import OVHSMSGateway
33 31
from passerelle.apps.sfr_dmc.models import SfrDmcGateway
34 32
from passerelle.base.models import AccessRight, ApiUser, Job, ResourceLog
35 33
from passerelle.sms.models import SMSLog, SMSResource
36 34
from passerelle.utils.jsonresponse import APIError
35
from tests.test_manager import login
36
from tests.utils import FakedResponse
37 37

  
38 38
pytestmark = pytest.mark.django_db
39 39

  
......
165 165

  
166 166
        # perform job
167 167
        freezer.move_to('2019-01-01 01:00:03')
168
        with utils.mock_url(
168
        with tests.utils.mock_url(
169 169
            connector.URL, test_vector.get('response', ''), test_vector.get('status_code', 200)
170 170
        ):
171 171
            connector.jobs()
......
196 196
    assert Job.objects.exists()
197 197
    assert Job.objects.get().status == 'registered'
198 198
    assert not Job.objects.get().after_timestamp
199
    with utils.mock_url(
199
    with tests.utils.mock_url(
200 200
        url=connector.URL,
201 201
        response={'status': 429, 'message': 'Too much requests.\nPlease retry in 3 seconds.'},
202 202
    ):
......
204 204
    assert Job.objects.get().status == 'registered'
205 205
    assert Job.objects.get().after_timestamp
206 206

  
207
    with utils.mock_url(url=connector.URL, response={'status': 100, 'credit_left': 22}):
207
    with tests.utils.mock_url(url=connector.URL, response={'status': 100, 'credit_left': 22}):
208 208
        connector.jobs()
209 209
    assert Job.objects.get().status == 'registered'
210 210

  
211 211
    freezer.move_to('2019-01-01 00:00:11')
212
    with utils.mock_url(url=connector.URL, response={'status': 100, 'creditLeft': 22}):
212
    with tests.utils.mock_url(url=connector.URL, response={'status': 100, 'creditLeft': 22}):
213 213
        connector.jobs()
214 214
    assert Job.objects.get().status == 'completed'
215 215
    assert SMSLog.objects.exists()
......
411 411
    }
412 412
    base_url = connector.API_URL % {'serviceName': 'sms-test42'}
413 413
    url = base_url + 'jobs/'
414
    with utils.mock_url(url, resp, 200) as mocked:
414
    with tests.utils.mock_url(url, resp, 200) as mocked:
415 415
        connector.jobs()
416 416
    job = Job.objects.get(id=job_id)
417 417
    assert job.status == 'completed'
......
469 469
        'creditsLeft': 123,
470 470
    }
471 471
    ovh_url = connector.API_URL % {'serviceName': 'sms-test42'}
472
    with utils.mock_url(ovh_url, resp, 200) as mocked:
472
    with tests.utils.mock_url(ovh_url, resp, 200) as mocked:
473 473
        connector.jobs()
474 474
    connector.refresh_from_db()
475 475
    assert connector.credit_left == 123
......
481 481
    resp = {
482 482
        'creditsLeft': 456,
483 483
    }
484
    with utils.mock_url(ovh_url, resp, 200) as mocked:
484
    with tests.utils.mock_url(ovh_url, resp, 200) as mocked:
485 485
        connector.hourly()
486 486
    assert connector.credit_left == 456
487 487

  
......
507 507
    freezer.move_to('2019-01-01 00:00:00')
508 508
    resp = {'creditsLeft': 101}
509 509
    ovh_url = connector.API_URL % {'serviceName': 'sms-test42'}
510
    with utils.mock_url(ovh_url, resp, 200) as mocked:
510
    with tests.utils.mock_url(ovh_url, resp, 200) as mocked:
511 511
        connector.hourly()
512 512
    assert len(mailoutbox) == 0
513 513

  
514 514
    resp = {'creditsLeft': 99}
515 515
    ovh_url = connector.API_URL % {'serviceName': 'sms-test42'}
516
    with utils.mock_url(ovh_url, resp, 200) as mocked:
516
    with tests.utils.mock_url(ovh_url, resp, 200) as mocked:
517 517
        connector.hourly()
518 518
    assert len(mailoutbox) == 1
519 519

  
......
530 530
    freezer.move_to('2019-01-01 12:00:00')
531 531
    resp = {'creditsLeft': 99}
532 532
    ovh_url = connector.API_URL % {'serviceName': 'sms-test42'}
533
    with utils.mock_url(ovh_url, resp, 200) as mocked:
533
    with tests.utils.mock_url(ovh_url, resp, 200) as mocked:
534 534
        connector.hourly()
535 535
    assert len(mailoutbox) == 0
536 536

  
537 537
    freezer.move_to('2019-01-02 01:00:07')
538
    with utils.mock_url(ovh_url, resp, 200) as mocked:
538
    with tests.utils.mock_url(ovh_url, resp, 200) as mocked:
539 539
        connector.hourly()
540 540
    assert len(mailoutbox) == 1
541 541

  
......
558 558
        'consumerKey': 'xyz',
559 559
        'validationUrl': 'https://eu.api.ovh.com/auth/?credentialToken=iQ1joJE',
560 560
    }
561
    with utils.mock_url(ovh_request_token_url, ovh_response, 302) as mocked:
561
    with tests.utils.mock_url(ovh_request_token_url, ovh_response, 302) as mocked:
562 562
        resp = resp.click('request access')
563 563
    assert resp.url == 'https://eu.api.ovh.com/auth/?credentialToken=iQ1joJE'
564 564

  
......
587 587
    ovh_request_token_url = 'https://eu.api.ovh.com/1.0/auth/credential'
588 588
    ovh_response = {'message': 'Invalid application key'}
589 589

  
590
    with utils.mock_url(ovh_request_token_url, ovh_response, 401) as mocked:
590
    with tests.utils.mock_url(ovh_request_token_url, ovh_response, 401) as mocked:
591 591
        resp = resp.click('request access').follow()
592 592
    assert 'error requesting token: Invalid application key.' in resp.text
593 593

  
594 594
    ovh_response = 'not-json'
595
    with utils.mock_url(ovh_request_token_url, ovh_response, 401) as mocked:
595
    with tests.utils.mock_url(ovh_request_token_url, ovh_response, 401) as mocked:
596 596
        resp = resp.click('request access').follow()
597 597
    assert 'error requesting token: bad JSON response' in resp.text
598 598

  
tests/test_solis.py
2 2

  
3 3
import mock
4 4
import pytest
5
import utils
6 5
from django.contrib.contenttypes.models import ContentType
7 6
from django.core.files import File
8 7
from django.utils.six import StringIO
9 8

  
9
import tests.utils
10 10
from passerelle.apps.solis.models import Solis, SolisAPALink, SolisRSALink, unflat
11 11
from passerelle.base.models import AccessRight, ApiUser
12 12

  
......
88 88

  
89 89
def test_solis_restricted_access(app, solis):
90 90
    for service in ('apa-link', 'apa-unlink', 'rsa-link', 'rsa-unlink'):
91
        endpoint = utils.generic_endpoint_url('solis', service, slug=solis.slug)
91
        endpoint = tests.utils.generic_endpoint_url('solis', service, slug=solis.slug)
92 92
        assert endpoint == '/solis/test/%s' % service
93 93
        with mock.patch('passerelle.utils.Request.post') as requests_post:
94 94
            with mock.patch('passerelle.utils.Request.get') as requests_get:
......
99 99
                resp = app.get(endpoint, status=405)
100 100
                assert requests_get.call_count == 0
101 101
    for service in ('apa-links', 'apa-user-info', 'apa-users', 'rsa-links', 'rsa-user-info'):
102
        endpoint = utils.generic_endpoint_url('solis', service, slug=solis.slug)
102
        endpoint = tests.utils.generic_endpoint_url('solis', service, slug=solis.slug)
103 103
        assert endpoint == '/solis/test/%s' % service
104 104
        with mock.patch('passerelle.utils.Request.get') as requests_get:
105 105
            with mock.patch('passerelle.utils.Request.post') as requests_post:
......
114 114
@pytest.fixture
115 115
def ping_response():
116 116
    response_request = mock.Mock(headers={'Accept': '*/*'}, body=None)
117
    return utils.FakedResponse(
117
    return tests.utils.FakedResponse(
118 118
        headers={'Content-Type': 'text/plain'}, status_code=200, request=response_request
119 119
    )
120 120

  
......
127 127
        codename='can_access', apiuser=api, resource_type=obj_type, resource_pk=solis.pk
128 128
    )
129 129

  
130
    endpoint = utils.generic_endpoint_url('solis', 'ping', slug=solis.slug)
130
    endpoint = tests.utils.generic_endpoint_url('solis', 'ping', slug=solis.slug)
131 131
    with mock.patch('passerelle.utils.RequestSession.request') as requests_get:
132 132
        for bad_content in (
133 133
            'error',
......
198 198
    # link
199 199
    with mock.patch('passerelle.utils.Request.post') as requests_post:  # get solis token
200 200
        with mock.patch('passerelle.utils.Request.get') as requests_get:  # get solis informations
201
            endpoint = utils.generic_endpoint_url('solis', 'apa-link', slug=solis.slug)
201
            endpoint = tests.utils.generic_endpoint_url('solis', 'apa-link', slug=solis.slug)
202 202
            for params in (None, '', []):
203 203
                resp = app.post_json(endpoint, params=params, status=200)
204 204
                assert requests_post.call_count == 0
......
216 216
                assert resp.json['err'] == 1
217 217
                assert 'missing user_id/code credentials' in resp.json['err_desc']
218 218

  
219
            requests_post.return_value = utils.FakedResponse(content=APATOKEN_403, status_code=403)
219
            requests_post.return_value = tests.utils.FakedResponse(content=APATOKEN_403, status_code=403)
220 220
            resp = app.post_json(
221 221
                endpoint, params={'user_id': 'x', 'code': 'x', 'name_id': NAMEID}, status=200
222 222
            )
......
227 227

  
228 228
            assert SolisAPALink.objects.count() == 0
229 229

  
230
            requests_post.return_value = utils.FakedResponse(content=APATOKEN, status_code=200)
231
            requests_get.return_value = utils.FakedResponse(
230
            requests_post.return_value = tests.utils.FakedResponse(content=APATOKEN, status_code=200)
231
            requests_get.return_value = tests.utils.FakedResponse(
232 232
                content=APAINFOS['exportDonneesIndividu'], status_code=200
233 233
            )
234 234
            resp = app.post_json(
......
279 279
        'Mme Pecile PYPPENNE (NPYNEZ)',
280 280
        'Mme Pecile PYPPENNE (NPYNEZ)',
281 281
    ]
282
    endpoint = utils.generic_endpoint_url('solis', 'apa-links', slug=solis.slug)
282
    endpoint = tests.utils.generic_endpoint_url('solis', 'apa-links', slug=solis.slug)
283 283
    resp = app.get(endpoint, status=400)  # missing name_id
284 284
    assert resp.json['err'] == 1
285 285
    endpoint += '?name_id=%s' % NAMEID
......
292 292
    changed_name = APAINFOS['exportDonneesIndividu'].replace('PYPPENNE', 'PEPONE')
293 293
    with mock.patch('passerelle.utils.Request.get') as requests_get:
294 294
        with mock.patch('passerelle.utils.Request.post') as requests_post:
295
            requests_post.return_value = utils.FakedResponse(content=APATOKEN, status_code=200)
296
            requests_get.return_value = utils.FakedResponse(content=changed_name, status_code=200)
297
            endpoint = utils.generic_endpoint_url('solis', 'apa-user-info', slug=solis.slug)
295
            requests_post.return_value = tests.utils.FakedResponse(content=APATOKEN, status_code=200)
296
            requests_get.return_value = tests.utils.FakedResponse(content=changed_name, status_code=200)
297
            endpoint = tests.utils.generic_endpoint_url('solis', 'apa-user-info', slug=solis.slug)
298 298
            endpoint += '?name_id=%s&user_id=42' % NAMEID
299 299
            resp = app.get(endpoint, status=200)
300 300
            assert resp.json['err'] == 0
......
306 306
    for apa_endpoint in APAINFOS:
307 307
        with mock.patch('passerelle.utils.Request.get') as requests_get:
308 308
            with mock.patch('passerelle.utils.Request.post') as requests_post:
309
                requests_post.return_value = utils.FakedResponse(content=APATOKEN, status_code=200)
309
                requests_post.return_value = tests.utils.FakedResponse(content=APATOKEN, status_code=200)
310 310

  
311
                endpoint_base = utils.generic_endpoint_url('solis', 'apa-user-info', slug=solis.slug)
311
                endpoint_base = tests.utils.generic_endpoint_url('solis', 'apa-user-info', slug=solis.slug)
312 312
                resp = app.get(endpoint_base, status=400)  # missing name_id
313 313
                assert resp.json['err'] == 1
314 314

  
315 315
                endpoint = endpoint_base + '?name_id=%s&user_id=53&information=%s' % (NAMEID, apa_endpoint)
316
                requests_get.return_value = utils.FakedResponse(
316
                requests_get.return_value = tests.utils.FakedResponse(
317 317
                    content=APAINFOS[apa_endpoint], status_code=200
318 318
                )
319 319
                resp = app.get(endpoint, status=200)
......
324 324
                assert resp.json['data']
325 325

  
326 326
                # solis api crash
327
                requests_get.return_value = utils.FakedResponse(content='boum', status_code=500)
327
                requests_get.return_value = tests.utils.FakedResponse(content='boum', status_code=500)
328 328
                resp = app.get(endpoint, status=200)
329 329
                assert requests_post.call_count == 2  # get a token
330 330
                assert requests_get.call_count == 2  # get informations
......
333 333
                assert resp.json['err_desc'].startswith('error status:500')
334 334
                assert resp.json['data'] == {'json_content': None, 'status_code': 500}
335 335

  
336
                requests_get.return_value = utils.FakedResponse(content='{"error":"foobar"}', status_code=500)
336
                requests_get.return_value = tests.utils.FakedResponse(
337
                    content='{"error":"foobar"}', status_code=500
338
                )
337 339
                resp = app.get(endpoint, status=200)
338 340
                assert resp.json['err'] == 1
339 341
                assert resp.json['err_desc'].startswith('error status:500')
......
350 352
    # get info about a specific request
351 353
    with mock.patch('passerelle.utils.Request.get') as requests_get:
352 354
        with mock.patch('passerelle.utils.Request.post') as requests_post:
353
            requests_post.return_value = utils.FakedResponse(content=APATOKEN, status_code=200)
354
            endpoint_base = utils.generic_endpoint_url('solis', 'apa-user-info', slug=solis.slug)
355
            requests_post.return_value = tests.utils.FakedResponse(content=APATOKEN, status_code=200)
356
            endpoint_base = tests.utils.generic_endpoint_url('solis', 'apa-user-info', slug=solis.slug)
355 357

  
356 358
            # via demandeUnitaire
357 359
            endpoint = endpoint_base + '?name_id=%s&user_id=53&information=demandeUnitaire&index=42' % NAMEID
358
            requests_get.return_value = utils.FakedResponse(content=APAREQUEST, status_code=200)
360
            requests_get.return_value = tests.utils.FakedResponse(content=APAREQUEST, status_code=200)
359 361
            resp = app.get(endpoint, status=200)
360 362
            assert requests_post.call_count == 1  # get a token
361 363
            assert requests_get.call_count == 1  # get demandeUnitaire
......
367 369

  
368 370
            requests_post.reset_mock()
369 371
            requests_get.reset_mock()
370
            requests_get.return_value = utils.FakedResponse(content='nothing here', status_code=404)
372
            requests_get.return_value = tests.utils.FakedResponse(content='nothing here', status_code=404)
371 373
            resp = app.get(endpoint, status=200)
372 374
            assert requests_post.call_count == 1  # get a token
373 375
            assert requests_get.call_count == 1  # get demandeUnitaire
......
398 400
                    NAMEID,
399 401
                    information,
400 402
                )
401
                requests_get.return_value = utils.FakedResponse(
403
                requests_get.return_value = tests.utils.FakedResponse(
402 404
                    content=APAINFOS[information], status_code=200
403 405
                )
404 406
                resp = app.get(endpoint, status=200)
......
423 425
    change_info = APAINFOS['exportDonneesIndividu'].replace('PYPPENNE', 'PEPPYNE')
424 426
    with mock.patch('passerelle.utils.Request.get') as requests_get:
425 427
        with mock.patch('passerelle.utils.Request.post') as requests_post:
426
            requests_post.return_value = utils.FakedResponse(content=APATOKEN, status_code=200)
427
            requests_get.return_value = utils.FakedResponse(content=change_info, status_code=200)
428
            endpoint = utils.generic_endpoint_url('solis', 'apa-users', slug=solis.slug)
428
            requests_post.return_value = tests.utils.FakedResponse(content=APATOKEN, status_code=200)
429
            requests_get.return_value = tests.utils.FakedResponse(content=change_info, status_code=200)
430
            endpoint = tests.utils.generic_endpoint_url('solis', 'apa-users', slug=solis.slug)
429 431
            endpoint += '?name_id=%s' % NAMEID
430 432
            resp = app.get(endpoint, status=200)
431 433
            assert resp.json['err'] == 0
......
441 443
            ]
442 444

  
443 445
    # unlink
444
    endpoint = utils.generic_endpoint_url('solis', 'apa-unlink', slug=solis.slug)
446
    endpoint = tests.utils.generic_endpoint_url('solis', 'apa-unlink', slug=solis.slug)
445 447
    for bad_params in ({}, {'user_id': '42'}, {'name_id': NAMEID}):
446 448
        resp = app.post_json(endpoint, params=bad_params, status=200)
447 449
        assert resp.json['err'] == 1
......
466 468
    assert SolisAPALink.objects.count() == 1
467 469

  
468 470
    # can not get informations from unlinked user
469
    endpoint = utils.generic_endpoint_url('solis', 'apa-user-info', slug=solis.slug)
471
    endpoint = tests.utils.generic_endpoint_url('solis', 'apa-user-info', slug=solis.slug)
470 472
    endpoint += '?name_id=%s&user_id=42' % NAMEID
471 473
    resp = app.get(endpoint, status=200)
472 474
    assert resp.json['err'] == 1
......
483 485
    )
484 486

  
485 487
    with mock.patch('passerelle.utils.Request.get') as requests_get:
486
        requests_get.return_value = utils.FakedResponse(content=DEPARTEMENTS, status_code=200)
487
        url = utils.generic_endpoint_url('solis', 'referential', slug=solis.slug)
488
        requests_get.return_value = tests.utils.FakedResponse(content=DEPARTEMENTS, status_code=200)
489
        url = tests.utils.generic_endpoint_url('solis', 'referential', slug=solis.slug)
488 490

  
489 491
        resp = app.get(url + '/trans/departement/', status=200)
490 492
        assert requests_get.call_count == 1
......
533 535
        assert 'codePays=79' in called_url
534 536
        assert 'foo=bar' not in called_url
535 537

  
536
        requests_get.return_value = utils.FakedResponse(
538
        requests_get.return_value = tests.utils.FakedResponse(
537 539
            content='{"nada":0}', status_code=404, reason='Not found'
538 540
        )
539 541
        resp = app.get(url + '/foo/bar/', status=200)
......
542 544
        assert resp.json['err_desc'] == "error status:404 'Not found', content:'{\"nada\":0}'"
543 545
        assert resp.json['data'] == {'json_content': {'nada': 0}, 'status_code': 404}
544 546

  
545
        requests_get.return_value = utils.FakedResponse(content='crash', status_code=500, reason='boum')
547
        requests_get.return_value = tests.utils.FakedResponse(content='crash', status_code=500, reason='boum')
546 548
        resp = app.get(url + '/foo/bar/', status=200)
547 549
        assert requests_get.call_args[0][0].endswith('/solisapi/referentiels/foo/bar')
548 550
        assert resp.json['err'] == 1
......
550 552
        assert resp.json['data'] == {'json_content': None, 'status_code': 500}
551 553

  
552 554
        # optimized trans/lieu search
553
        requests_get.return_value = utils.FakedResponse(content='{"lieux":[]}', status_code=200)
555
        requests_get.return_value = tests.utils.FakedResponse(content='{"lieux":[]}', status_code=200)
554 556
        resp = app.get(url + '/trans/lieu/', status=200)
555 557
        assert requests_get.call_args[0][0].endswith('/solisapi/referentiels/trans/lieu')
556 558
        resp = app.get(url + '/trans/lieu/?codeDepartement=1&codeCommune=2&q=search', status=200)
......
569 571
    )
570 572

  
571 573
    with mock.patch('passerelle.utils.Request.get') as requests_get:
572
        requests_get.return_value = utils.FakedResponse(content=CIVI_INDIVIDU, status_code=200)
573
        url = utils.generic_endpoint_url('solis', 'referential-item', slug=solis.slug)
574
        requests_get.return_value = tests.utils.FakedResponse(content=CIVI_INDIVIDU, status_code=200)
575
        url = tests.utils.generic_endpoint_url('solis', 'referential-item', slug=solis.slug)
574 576
        resp = app.get(url + '/civi/individu/4373/', status=200)
575 577
        assert requests_get.call_count == 1
576 578
        assert requests_get.call_args[0][0].endswith('/solisapi/referentiels/civi/individu/4373/')
577 579
        assert resp.json['err'] == 0
578 580
        assert resp.json['data']['etatCivil']['nom'] == 'NOM'
579 581

  
580
        requests_get.return_value = utils.FakedResponse(
582
        requests_get.return_value = tests.utils.FakedResponse(
581 583
            content='{"nada":0}', status_code=404, reason='Not found'
582 584
        )
583
        url = utils.generic_endpoint_url('solis', 'referential-item', slug=solis.slug)
585
        url = tests.utils.generic_endpoint_url('solis', 'referential-item', slug=solis.slug)
584 586
        resp = app.get(url + '/civi/individu/424242/', status=200)
585 587
        assert requests_get.call_args[0][0].endswith('/solisapi/referentiels/civi/individu/424242/')
586 588
        assert resp.json['err'] == 1
587 589
        assert resp.json['err_desc'] == "error status:404 'Not found', content:'{\"nada\":0}'"
588 590
        assert resp.json['data'] == {'json_content': {'nada': 0}, 'status_code': 404}
589 591

  
590
        requests_get.return_value = utils.FakedResponse(content='["not a dict"]', status_code=200)
591
        url = utils.generic_endpoint_url('solis', 'referential-item', slug=solis.slug)
592
        requests_get.return_value = tests.utils.FakedResponse(content='["not a dict"]', status_code=200)
593
        url = tests.utils.generic_endpoint_url('solis', 'referential-item', slug=solis.slug)
592 594
        resp = app.get(url + '/civi/individu/0/', status=200)
593 595
        assert requests_get.call_args[0][0].endswith('/solisapi/referentiels/civi/individu/0/')
594 596
        assert resp.json['err'] == 1
......
612 614
    with mock.patch('passerelle.utils.Request.post') as requests_post:
613 615

  
614 616
        def integration_ok(*args, **kwargs):
615
            return utils.FakedResponse(content='', status_code=204)
617
            return tests.utils.FakedResponse(content='', status_code=204)
616 618

  
617
        requests_post.return_value = utils.FakedResponse(content='', status_code=204)
619
        requests_post.return_value = tests.utils.FakedResponse(content='', status_code=204)
618 620
        # requests_post.side_effect = [utils.FakedResponse(content='', status_code=204)]
619
        url = utils.generic_endpoint_url('solis', 'apa-integration', slug=solis.slug)
621
        url = tests.utils.generic_endpoint_url('solis', 'apa-integration', slug=solis.slug)
620 622

  
621 623
        demande = {
622 624
            "beneficiaire_demande_aide": "APAD",
......
656 658
        # add files
657 659
        requests_post.reset_mock()
658 660
        requests_post.side_effect = [
659
            utils.FakedResponse(content='{"id": "foo", "nbFichiersAcceptes": 3}', status_code=200),
660
            utils.FakedResponse(content='', status_code=204),
661
            tests.utils.FakedResponse(content='{"id": "foo", "nbFichiersAcceptes": 3}', status_code=200),
662
            tests.utils.FakedResponse(content='', status_code=204),
661 663
        ]
662 664
        demande['file:etat_civil_001.pdf'] = {
663 665
            'content': 'JVBERmZha2U=',
......
722 724
        # bad file
723 725
        requests_post.reset_mock()
724 726
        requests_post.side_effect = [
725
            utils.FakedResponse(content='{"id": "foo", "nbFichiersAcceptes": 0}', status_code=200),
726
            utils.FakedResponse(content='', status_code=204),
727
            tests.utils.FakedResponse(content='{"id": "foo", "nbFichiersAcceptes": 0}', status_code=200),
728
            tests.utils.FakedResponse(content='', status_code=204),
727 729
        ]
728 730
        resp = app.post_json(url, params=demande, status=200)
729 731
        requests_post.assert_called_once()  # don't try to post request
......
734 736
        # error on sending file
735 737
        requests_post.reset_mock()
736 738
        requests_post.side_effect = [
737
            utils.FakedResponse(content='{"error": 1}', status_code=500),
738
            utils.FakedResponse(content='', status_code=204),
739
            tests.utils.FakedResponse(content='{"error": 1}', status_code=500),
740
            tests.utils.FakedResponse(content='', status_code=204),
739 741
        ]
740 742
        resp = app.post_json(url, params=demande, status=200)
741 743
        requests_post.assert_called_once()  # don't try to post request
......
754 756
    # link
755 757
    with mock.patch('passerelle.utils.Request.post') as requests_post:  # get solis token
756 758
        with mock.patch('passerelle.utils.Request.get') as requests_get:  # get solis informations
757
            endpoint = utils.generic_endpoint_url('solis', 'rsa-link', slug=solis.slug)
759
            endpoint = tests.utils.generic_endpoint_url('solis', 'rsa-link', slug=solis.slug)
758 760
            for params in (None, '', []):
759 761
                resp = app.post_json(endpoint, params=params, status=200)
760 762
                assert requests_post.call_count == 0
......
779 781
                assert resp.json['err'] == 1
780 782
                assert 'missing user_id/code credentials' in resp.json['err_desc']
781 783

  
782
            requests_post.return_value = utils.FakedResponse(content=RSATOKEN_403, status_code=403)
784
            requests_post.return_value = tests.utils.FakedResponse(content=RSATOKEN_403, status_code=403)
783 785
            resp = app.post_json(
784 786
                endpoint, params={'user_id': 'x', 'code': 'x', 'name_id': NAMEID}, status=200
785 787
            )
......
790 792

  
791 793
            assert SolisRSALink.objects.count() == 0
792 794

  
793
            requests_post.return_value = utils.FakedResponse(content=RSATOKEN, status_code=200)
794
            requests_get.return_value = utils.FakedResponse(content=CIVI_INDIVIDU, status_code=200)
795
            requests_post.return_value = tests.utils.FakedResponse(content=RSATOKEN, status_code=200)
796
            requests_get.return_value = tests.utils.FakedResponse(content=CIVI_INDIVIDU, status_code=200)
795 797
            resp = app.post_json(
796 798
                endpoint, params={'name_id': NAMEID, 'user_id': '4273', 'code': 'foo'}, status=200
797 799
            )
......
851 853
    # verify recorded names after link
852 854
    assert [x['text'] for x in SolisRSALink.objects.values('text')] == ['MME Prenom NOM', 'MME Prenom NOM']
853 855

  
854
    endpoint = utils.generic_endpoint_url('solis', 'rsa-links', slug=solis.slug)
856
    endpoint = tests.utils.generic_endpoint_url('solis', 'rsa-links', slug=solis.slug)
855 857
    resp = app.get(endpoint, status=400)  # missing name_id
856 858
    assert resp.json['err'] == 1
857 859
    endpoint += '?name_id=%s' % NAMEID
......
864 866
    changed_name = CIVI_INDIVIDU.replace('Prenom', 'Postnom')
865 867
    with mock.patch('passerelle.utils.Request.get') as requests_get:
866 868
        with mock.patch('passerelle.utils.Request.post') as requests_post:
867
            requests_post.return_value = utils.FakedResponse(content=RSATOKEN, status_code=200)
868
            requests_get.return_value = utils.FakedResponse(content=changed_name, status_code=200)
869
            endpoint = utils.generic_endpoint_url('solis', 'rsa-user-info', slug=solis.slug)
869
            requests_post.return_value = tests.utils.FakedResponse(content=RSATOKEN, status_code=200)
870
            requests_get.return_value = tests.utils.FakedResponse(content=changed_name, status_code=200)
871
            endpoint = tests.utils.generic_endpoint_url('solis', 'rsa-user-info', slug=solis.slug)
870 872
            endpoint += '?name_id=%s&user_id=4242' % NAMEID
871 873
            resp = app.get(endpoint, status=200)
872 874
            assert resp.json['err'] == 0
......
877 879
    # get referential for a linked user
878 880
    with mock.patch('passerelle.utils.Request.get') as requests_get:
879 881
        with mock.patch('passerelle.utils.Request.post') as requests_post:
880
            requests_post.return_value = utils.FakedResponse(content=RSATOKEN, status_code=200)
882
            requests_post.return_value = tests.utils.FakedResponse(content=RSATOKEN, status_code=200)
881 883

  
882
            endpoint_base = utils.generic_endpoint_url('solis', 'rsa-user-info', slug=solis.slug)
884
            endpoint_base = tests.utils.generic_endpoint_url('solis', 'rsa-user-info', slug=solis.slug)
883 885
            resp = app.get(endpoint_base, status=400)  # missing name_id
884 886
            assert resp.json['err'] == 1
885 887

  
886 888
            endpoint = endpoint_base + '?name_id=%s&user_id=4242&information=allocataires' % NAMEID
887
            requests_get.return_value = utils.FakedResponse(content=RSAALLOCATAIRES, status_code=200)
889
            requests_get.return_value = tests.utils.FakedResponse(content=RSAALLOCATAIRES, status_code=200)
888 890
            resp = app.get(endpoint, status=200)
889 891
            assert requests_post.call_count == 1  # get a token
890 892
            assert requests_get.call_count == 1  # get informations
......
893 895
            assert resp.json['data']
894 896

  
895 897
            # solis api crash
896
            requests_get.return_value = utils.FakedResponse(content='boum', status_code=500)
898
            requests_get.return_value = tests.utils.FakedResponse(content='boum', status_code=500)
897 899
            resp = app.get(endpoint, status=200)
898 900
            assert requests_post.call_count == 2  # get a token
899 901
            assert requests_get.call_count == 2  # get informations
......
902 904
            assert resp.json['err_desc'].startswith('error status:500')
903 905
            assert resp.json['data'] == {'json_content': None, 'status_code': 500}
904 906

  
905
            requests_get.return_value = utils.FakedResponse(content='{"error":"foobar"}', status_code=500)
907
            requests_get.return_value = tests.utils.FakedResponse(
908
                content='{"error":"foobar"}', status_code=500
909
            )
906 910
            resp = app.get(endpoint, status=200)
907 911
            assert resp.json['err'] == 1
908 912
            assert resp.json['err_desc'].startswith('error status:500')
......
919 923
    # get actions, with filters
920 924
    with mock.patch('passerelle.utils.Request.get') as requests_get:
921 925
        with mock.patch('passerelle.utils.Request.post') as requests_post:
922
            requests_post.return_value = utils.FakedResponse(content=RSATOKEN, status_code=200)
923
            endpoint_base = utils.generic_endpoint_url('solis', 'rsa-user-info', slug=solis.slug)
926
            requests_post.return_value = tests.utils.FakedResponse(content=RSATOKEN, status_code=200)
927
            endpoint_base = tests.utils.generic_endpoint_url('solis', 'rsa-user-info', slug=solis.slug)
924 928
            endpoint = endpoint_base + '?name_id=%s&user_id=4242&information=actions' % NAMEID
925
            requests_get.return_value = utils.FakedResponse(content=RSA_ACTIONS, status_code=200)
929
            requests_get.return_value = tests.utils.FakedResponse(content=RSA_ACTIONS, status_code=200)
926 930
            resp = app.get(endpoint, status=200)
927 931
            assert requests_post.call_count == 1  # get a token
928 932
            assert requests_get.call_count == 1  # get actions
......
952 956

  
953 957
            requests_get.reset_mock()
954 958
            requests_get.side_effect = [
955
                utils.FakedResponse(status_code=200, content=RSA_ACTIONS),  # base info
956
                utils.FakedResponse(status_code=200, content='{"nom":"Structure1"}'),  # link 1
957
                utils.FakedResponse(status_code=200, content='{"nom":"Structure2"}'),  # link 2
959
                tests.utils.FakedResponse(status_code=200, content=RSA_ACTIONS),  # base info
960
                tests.utils.FakedResponse(status_code=200, content='{"nom":"Structure1"}'),  # link 1
961
                tests.utils.FakedResponse(status_code=200, content='{"nom":"Structure2"}'),  # link 2
958 962
            ]
959 963
            filtered = endpoint + '&links'
960 964
            resp = app.get(filtered, status=200)
......
968 972
    # get referential for a linked user with links
969 973
    with mock.patch('passerelle.utils.Request.get') as requests_get:
970 974
        with mock.patch('passerelle.utils.Request.post') as requests_post:
971
            requests_post.return_value = utils.FakedResponse(content=RSATOKEN, status_code=200)
972
            endpoint_base = utils.generic_endpoint_url('solis', 'rsa-user-info', slug=solis.slug)
975
            requests_post.return_value = tests.utils.FakedResponse(content=RSATOKEN, status_code=200)
976
            endpoint_base = tests.utils.generic_endpoint_url('solis', 'rsa-user-info', slug=solis.slug)
973 977

  
974 978
            requests_get.side_effect = [
975
                utils.FakedResponse(status_code=200, content=RSAALLOCATAIRES),  # base info
976
                utils.FakedResponse(status_code=200, content=CIVI_INDIVIDU),  # link 1
977
                utils.FakedResponse(status_code=200, content=CIVI_INDIVIDU),
979
                tests.utils.FakedResponse(status_code=200, content=RSAALLOCATAIRES),  # base info
980
                tests.utils.FakedResponse(status_code=200, content=CIVI_INDIVIDU),  # link 1
981
                tests.utils.FakedResponse(status_code=200, content=CIVI_INDIVIDU),
978 982
            ]  # link 2
979 983
            endpoint = endpoint_base + '?name_id=%s&user_id=4242&information=allocataires&links' % NAMEID
980 984
            resp = app.get(endpoint, status=200)
......
988 992
            requests_post.reset_mock()
989 993
            requests_get.reset_mock()
990 994
            requests_get.side_effect = [
991
                utils.FakedResponse(status_code=200, content=RSA_3LINKS),  # base info
992
                utils.FakedResponse(status_code=200, content=CIVI_INDIVIDU),  # link 1
993
                utils.FakedResponse(status_code=200, content=CIVI_INDIVIDU),  # link 2.1
994
                utils.FakedResponse(status_code=200, content=CIVI_INDIVIDU),
995
                tests.utils.FakedResponse(status_code=200, content=RSA_3LINKS),  # base info
996
                tests.utils.FakedResponse(status_code=200, content=CIVI_INDIVIDU),  # link 1
997
                tests.utils.FakedResponse(status_code=200, content=CIVI_INDIVIDU),  # link 2.1
998
                tests.utils.FakedResponse(status_code=200, content=CIVI_INDIVIDU),
995 999
            ]  # link 2.2
996 1000
            endpoint = endpoint_base + '?name_id=%s&user_id=4242&information=evaluations&links' % NAMEID
997 1001
            resp = app.get(endpoint, status=200)
......
1006 1010
            requests_post.reset_mock()
1007 1011
            requests_get.reset_mock()
1008 1012
            requests_get.side_effect = [
1009
                utils.FakedResponse(status_code=200, content=RSAALLOCATAIRES),  # base info
1010
                utils.FakedResponse(status_code=200, content=CIVI_INDIVIDU),
1013
                tests.utils.FakedResponse(status_code=200, content=RSAALLOCATAIRES),  # base info
1014
                tests.utils.FakedResponse(status_code=200, content=CIVI_INDIVIDU),
1011 1015
            ]  # link 1
1012 1016
            endpoint = (
1013 1017
                endpoint_base
......
1024 1028
            requests_post.reset_mock()
1025 1029
            requests_get.reset_mock()
1026 1030
            requests_get.side_effect = [
1027
                utils.FakedResponse(status_code=200, content=RSAALLOCATAIRES),  # base info
1028
                utils.FakedResponse(status_code=404, content='{"foo": "bar"}'),  # link 1
1029
                utils.FakedResponse(status_code=500, content='boom'),
1031
                tests.utils.FakedResponse(status_code=200, content=RSAALLOCATAIRES),  # base info
1032
                tests.utils.FakedResponse(status_code=404, content='{"foo": "bar"}'),  # link 1
1033
                tests.utils.FakedResponse(status_code=500, content='boom'),
1030 1034
            ]  # link 2
1031 1035
            endpoint = endpoint_base + '?name_id=%s&user_id=4242&information=allocataires&links' % NAMEID
1032 1036
            resp = app.get(endpoint, status=200)
......
1043 1047
            ):
1044 1048
                requests_post.reset_mock()
1045 1049
                requests_get.reset_mock()
1046
                requests_get.side_effect = [utils.FakedResponse(status_code=200, content=content)]
1050
                requests_get.side_effect = [tests.utils.FakedResponse(status_code=200, content=content)]
1047 1051
                endpoint = endpoint_base + '?name_id=%s&user_id=4242&information=allocataires&links' % NAMEID
1048 1052
                resp = app.get(endpoint, status=200)
1049 1053
                assert requests_post.call_count == 1  # get a token
......
1053 1057
                assert 'content' not in resp.json['data']['rsa_links']['etatCivil']
1054 1058

  
1055 1059
    # unlink
1056
    endpoint = utils.generic_endpoint_url('solis', 'rsa-unlink', slug=solis.slug)
1060
    endpoint = tests.utils.generic_endpoint_url('solis', 'rsa-unlink', slug=solis.slug)
1057 1061
    for bad_params in ({}, {'user_id': '4273'}, {'name_id': NAMEID}):
1058 1062
        resp = app.post_json(endpoint, params=bad_params, status=200)
1059 1063
        assert resp.json['err'] == 1
......
1078 1082
    assert SolisRSALink.objects.count() == 1
1079 1083

  
1080 1084
    # can not get informations from unlinked user
1081
    endpoint = utils.generic_endpoint_url('solis', 'rsa-user-info', slug=solis.slug)
1085
    endpoint = tests.utils.generic_endpoint_url('solis', 'rsa-user-info', slug=solis.slug)
1082 1086
    endpoint += '?name_id=%s&user_id=4242' % NAMEID
1083 1087
    resp = app.get(endpoint, status=200)
1084 1088
    assert resp.json['err'] == 1
tests/test_solis_afi_mss.py
20 20

  
21 21
import mock
22 22
import pytest
23
import utils
24 23
from django.utils.encoding import force_text
25 24

  
25
import tests.utils
26 26
from passerelle.contrib.solis_afi_mss.models import SolisAfiMss
27 27
from passerelle.utils.jsonresponse import APIError
28 28

  
29 29

  
30 30
@pytest.fixture
31 31
def connector(db):
32
    return utils.setup_access_rights(
32
    return tests.utils.setup_access_rights(
33 33
        SolisAfiMss.objects.create(
34 34
            slug='test',
35 35
            base_url='https://solis-afi-mss.example.net/',
......
54 54

  
55 55

  
56 56
def response(status_code, content):
57
    return utils.FakedResponse(content=content, status_code=status_code)
57
    return tests.utils.FakedResponse(content=content, status_code=status_code)
58 58

  
59 59

  
60 60
IS_ALIVE = response(200, json_get_data('isAlive'))
......
83 83

  
84 84

  
85 85
def get_endpoint(name):
86
    return utils.generic_endpoint_url('solis-afi-mss', name)
86
    return tests.utils.generic_endpoint_url('solis-afi-mss', name)
87 87

  
88 88

  
89 89
@mock.patch('passerelle.utils.Request.get')
tests/test_strasbourg_eu.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3 3
import pytest
4
import utils
5 4
from django.contrib.contenttypes.models import ContentType
6 5
from httmock import HTTMock, all_requests
7 6

  
7
import tests.utils
8 8
from passerelle.base.models import AccessRight, ApiUser
9 9
from passerelle.contrib.strasbourg_eu.models import StrasbourgEu
10 10

  
......
183 183

  
184 184

  
185 185
def test_interests(app, strasbourg_eu):
186
    endpoint = utils.generic_endpoint_url('strasbourg-eu', 'interests', slug=strasbourg_eu.slug)
186
    endpoint = tests.utils.generic_endpoint_url('strasbourg-eu', 'interests', slug=strasbourg_eu.slug)
187 187
    with HTTMock(interests_mock):
188 188
        resp = app.get(endpoint)
189 189
        assert len(resp.json['data']) == 2
......
214 214

  
215 215

  
216 216
def test_notifications(app, strasbourg_eu, caplog):
217
    endpoint = utils.generic_endpoint_url('strasbourg-eu', 'notifications', slug=strasbourg_eu.slug)
217
    endpoint = tests.utils.generic_endpoint_url('strasbourg-eu', 'notifications', slug=strasbourg_eu.slug)
218 218

  
219 219
    with HTTMock(notifications_mock):
220 220
        resp = app.get(endpoint, status=400)
......
254 254

  
255 255

  
256 256
def test_favorites(app, strasbourg_eu):
257
    endpoint = utils.generic_endpoint_url('strasbourg-eu', 'favorites', slug=strasbourg_eu.slug)
257
    endpoint = tests.utils.generic_endpoint_url('strasbourg-eu', 'favorites', slug=strasbourg_eu.slug)
258 258
    with HTTMock(favorites_mock):
259 259
        resp = app.get(endpoint, status=400)
260 260
        resp = app.get(endpoint + '?name_id=xxx')
tests/test_tcl.py
2 2

  
3 3
import mock
4 4
import pytest
5
import utils
6 5
from django.utils.six.moves.urllib import parse as urlparse
7 6

  
7
import tests.utils
8 8
from passerelle.contrib.tcl.models import Line, Stop, Tcl
9 9

  
10 10
LIGNE_BUS = {
......
114 114

  
115 115
@pytest.fixture
116 116
def connector(db):
117
    return utils.setup_access_rights(Tcl.objects.create(slug='test'))
117
    return tests.utils.setup_access_rights(Tcl.objects.create(slug='test'))
118 118

  
119 119

  
120 120
def tcl_responses(url, **kwargs):
......
125 125
        '/geojson/tclarret': ARRETS,
126 126
        '/tclpassagearret': PASSAGES,
127 127
    }.get(urlparse.urlparse(url).path)
128
    return utils.FakedResponse(json=lambda: copy.deepcopy(content), status_code=200)
128
    return tests.utils.FakedResponse(json=lambda: copy.deepcopy(content), status_code=200)
129 129

  
130 130

  
131 131
@mock.patch('passerelle.utils.Request.get')
......
150 150
def test_stop_info(mocked_get, app, connector):
151 151
    mocked_get.side_effect = tcl_responses
152 152
    connector.daily()
153
    endpoint = utils.generic_endpoint_url('tcl', 'stop', slug=connector.slug)
153
    endpoint = tests.utils.generic_endpoint_url('tcl', 'stop', slug=connector.slug)
154 154
    assert endpoint == '/tcl/test/stop'
155 155
    resp = app.get(endpoint + '/46026')
156 156
    assert resp.json['data']['nom'] == 'Place Guichard'
tests/test_teamnet_axel.py
1 1
import mock
2 2
import pytest
3
import utils
4 3
from requests.exceptions import ConnectionError
5 4

  
5
import tests.utils
6 6
from passerelle.contrib.teamnet_axel.models import Link, TeamnetAxel
7 7
from passerelle.utils.jsonresponse import APIError
8 8

  
9 9

  
10 10
@pytest.fixture
11 11
def setup(db):
12
    return utils.make_resource(
12
    return tests.utils.make_resource(
13 13
        TeamnetAxel,
14 14
        **{
15 15
            'slug': 'test',
tests/test_toulouse_axel.py
29 29
import jsonschema
30 30
import mock
31 31
import pytest
32
import utils
33 32
import xmlschema
34 33
from django.core.cache import cache
35 34

  
35
import tests.utils
36 36
from passerelle.contrib.toulouse_axel import schemas
37 37
from passerelle.contrib.toulouse_axel.models import Link, Lock, ToulouseAxel
38 38
from passerelle.contrib.toulouse_axel.utils import (
......
50 50

  
51 51
@pytest.fixture
52 52
def resource(db):
53
    return utils.make_resource(
53
    return tests.utils.make_resource(
54 54
        ToulouseAxel, slug='test', wsdl_url='http://example.net/AXEL_WS/AxelWS.php?wsdl'
55 55
    )
56 56

  
tests/test_toulouse_smart.py
28 28
import lxml.etree as ET
29 29
import mock
30 30
import pytest
31
import utils
32 31
from django.db import connection
33 32
from django.db.migrations.executor import MigrationExecutor
34 33
from django.utils.encoding import force_text
35 34
from requests.exceptions import ReadTimeout
36
from test_manager import login
37 35

  
36
import tests.utils
38 37
from passerelle.base.models import Job
39 38
from passerelle.contrib.toulouse_smart.models import (
40 39
    SmartRequest,
......
42 41
    WcsRequest,
43 42
    WcsRequestFile,
44 43
)
44
from tests.test_manager import login
45 45

  
46 46
TEST_BASE_DIR = os.path.join(os.path.dirname(__file__), 'data', 'toulouse_smart')
47 47

  
......
50 50
def smart(db, settings):
51 51
    settings.TIME_ZONE = 'Europe/Paris'
52 52
    settings.USE_TZ = True
53
    return utils.make_resource(
53
    return tests.utils.make_resource(
54 54
        ToulouseSmartResource,
55 55
        title='Test',
56 56
        slug='test',
......
683 683
@mock.patch('passerelle.utils.RequestSession.request')
684 684
@mock.patch("django.db.models.fields.UUIDField.get_default", return_value=UUID)
685 685
def test_create_intervention_timeout(mocked_uuid, mocked_get, app, freezer, smart):
686
    from utils import FakedResponse
686
    from tests.utils import FakedResponse
687 687

  
688 688
    mocked_get.side_effect = [
689 689
        FakedResponse(
tests/test_vivaticket.py
1 1
# -*- coding: utf-8 -*-
2 2
import mock
3 3
import pytest
4
import utils
5 4

  
5
import tests.utils
6 6
from passerelle.apps.vivaticket.models import VivaTicket
7 7
from passerelle.utils.jsonresponse import APIError
8 8

  
......
216 216

  
217 217
@pytest.fixture
218 218
def connector(db):
219
    return utils.setup_access_rights(
219
    return tests.utils.setup_access_rights(
220 220
        VivaTicket.objects.create(
221 221
            slug='test', login='foo', password='bar', url='http://example.net/vivaticket'
222 222
        )
......
226 226
@mock.patch('passerelle.utils.Request.post')
227 227
def test_get_api_key(mocked_post, app, connector):
228 228
    with pytest.raises(APIError):
229
        mocked_post.return_value = utils.FakedResponse(content=ERROR_RESPONSE, ok=False)
229
        mocked_post.return_value = tests.utils.FakedResponse(content=ERROR_RESPONSE, ok=False)
230 230
        connector.get_apikey()
231
    mocked_post.return_value = utils.FakedResponse(content=KEY_RESPONSE, ok=True)
231
    mocked_post.return_value = tests.utils.FakedResponse(content=KEY_RESPONSE, ok=True)
232 232
    connector.get_apikey()
233 233
    assert mocked_post.call_count == 2
234 234
    assert "Connect/PostConnect" in mocked_post.call_args[0][0]
......
244 244
@mock.patch('passerelle.utils.Request.post')
245 245
@mock.patch('passerelle.utils.Request.get')
246 246
def test_get_events(mocked_get, mocked_post, app, connector):
247
    mocked_get.return_value = utils.FakedResponse(content=EVENTS_RESPONSE, status_code=200)
248
    mocked_post.return_value = utils.FakedResponse(content=KEY_RESPONSE, status_code=200)
249
    result = utils.endpoint_get('/vivaticket/test/events', app, connector, 'events')
247
    mocked_get.return_value = tests.utils.FakedResponse(content=EVENTS_RESPONSE, status_code=200)
248
    mocked_post.return_value = tests.utils.FakedResponse(content=KEY_RESPONSE, status_code=200)
249
    result = tests.utils.endpoint_get('/vivaticket/test/events', app, connector, 'events')
250 250
    assert mocked_post.call_count == 1
251 251
    assert mocked_get.call_args[1]['params']['key'] == "86569D0CA1B1CBEF8D77DD5BDC9F5CBAE5C99074"
252 252
    assert 'data' in result.json
......
258 258
@mock.patch('passerelle.utils.Request.post')
259 259
@mock.patch('passerelle.utils.Request.get')
260 260
def test_get_events_with_expired_key(mocked_get, mocked_post, app, connector):
261
    mocked_get.return_value = utils.FakedResponse(content=EVENTS_RESPONSE, status_code=401)
262
    mocked_post.return_value = utils.FakedResponse(content=KEY_RESPONSE, status_code=200)
263
    utils.endpoint_get('/vivaticket/test/events', app, connector, 'events')
261
    mocked_get.return_value = tests.utils.FakedResponse(content=EVENTS_RESPONSE, status_code=401)
262
    mocked_post.return_value = tests.utils.FakedResponse(content=KEY_RESPONSE, status_code=200)
263
    tests.utils.endpoint_get('/vivaticket/test/events', app, connector, 'events')
264 264
    assert mocked_post.call_count == 2
265 265

  
266 266

  
267 267
@mock.patch('passerelle.utils.Request.post')
268 268
@mock.patch('passerelle.utils.Request.get')
269 269
def test_get_rooms(mocked_get, mocked_post, app, connector):
270
    mocked_get.return_value = utils.FakedResponse(content=ROOMS_RESPONSE, status_code=200)
271
    mocked_post.return_value = utils.FakedResponse(content=KEY_RESPONSE, status_code=200)
272
    result = utils.endpoint_get('/vivaticket/test/rooms', app, connector, 'rooms')
270
    mocked_get.return_value = tests.utils.FakedResponse(content=ROOMS_RESPONSE, status_code=200)
271
    mocked_post.return_value = tests.utils.FakedResponse(content=KEY_RESPONSE, status_code=200)
272
    result = tests.utils.endpoint_get('/vivaticket/test/rooms', app, connector, 'rooms')
273 273
    assert mocked_get.call_args[1]['params']['key'] == '86569D0CA1B1CBEF8D77DD5BDC9F5CBAE5C99074'
274 274
    assert 'data' in result.json
275 275
    for item in result.json['data']:
276 276
        assert 'id' in item
277 277
        assert 'text' in item
278
    result = utils.endpoint_get('/vivaticket/test/rooms', app, connector, 'rooms', params={'event': '02'})
278
    result = tests.utils.endpoint_get(
279
        '/vivaticket/test/rooms', app, connector, 'rooms', params={'event': '02'}
280
    )
279 281
    assert mocked_get.call_args[1]['params']['eventCategory'] == '02'
280 282

  
281 283

  
282 284
@mock.patch('passerelle.utils.Request.post')
283 285
@mock.patch('passerelle.utils.Request.get')
284 286
def test_get_themes(mocked_get, mocked_post, app, connector):
285
    mocked_get.return_value = utils.FakedResponse(content=ROOMS_RESPONSE, status_code=200)
286
    mocked_post.return_value = utils.FakedResponse(content=KEY_RESPONSE, status_code=200)
287
    result = utils.endpoint_get('/vivaticket/test/themes', app, connector, 'themes')
287
    mocked_get.return_value = tests.utils.FakedResponse(content=ROOMS_RESPONSE, status_code=200)
288
    mocked_post.return_value = tests.utils.FakedResponse(content=KEY_RESPONSE, status_code=200)
289
    result = tests.utils.endpoint_get('/vivaticket/test/themes', app, connector, 'themes')
288 290
    assert mocked_get.call_args[1]['params']['key'] == '86569D0CA1B1CBEF8D77DD5BDC9F5CBAE5C99074'
289 291
    assert 'data' in result.json
290 292
    for item in result.json['data']:
291 293
        assert 'id' in item
292 294
        assert 'text' in item
293
    result = utils.endpoint_get('/vivaticket/test/themes', app, connector, 'themes', params={'room': '001'})
295
    result = tests.utils.endpoint_get(
296
        '/vivaticket/test/themes', app, connector, 'themes', params={'room': '001'}
297
    )
294 298
    assert mocked_get.call_args[1]['params']['room'] == '001'
295 299

  
296 300

  
297 301
@mock.patch('passerelle.utils.Request.post')
298 302
@mock.patch('passerelle.utils.Request.get')
299 303
def test_get_school_levels(mocked_get, mocked_post, app, connector):
300
    mocked_get.return_value = utils.FakedResponse(content=SCHOOL_LEVELS_RESPONSE, status_code=200)
301
    mocked_post.return_value = utils.FakedResponse(content=KEY_RESPONSE, status_code=200)
302
    result = utils.endpoint_get('/vivaticket/test/school-levels', app, connector, 'school-levels')
304
    mocked_get.return_value = tests.utils.FakedResponse(content=SCHOOL_LEVELS_RESPONSE, status_code=200)
305
    mocked_post.return_value = tests.utils.FakedResponse(content=KEY_RESPONSE, status_code=200)
306
    result = tests.utils.endpoint_get('/vivaticket/test/school-levels', app, connector, 'school-levels')
303 307
    assert mocked_get.call_args[1]['params']['key'] == '86569D0CA1B1CBEF8D77DD5BDC9F5CBAE5C99074'
304 308
    assert 'data' in result.json
305 309
    for item in result.json['data']:
......
311 315
@mock.patch('passerelle.utils.Request.put')
312 316
@mock.patch('passerelle.utils.Request.get')
313 317
def test_get_or_create_contact(mocked_get, mocked_put, mocked_post, app, connector):
314
    mocked_get.return_value = utils.FakedResponse(content='', ok=False)
318
    mocked_get.return_value = tests.utils.FakedResponse(content='', ok=False)
315 319
    mocked_post.side_effect = [
316
        utils.FakedResponse(content=KEY_RESPONSE, status_code=200),
317
        utils.FakedResponse(
320
        tests.utils.FakedResponse(content=KEY_RESPONSE, status_code=200),
321
        tests.utils.FakedResponse(
318 322
            content='{"InternalCode": "0000000273", "ReturnCode": 0, "Error": null}', status_code=200
319 323
        ),
320 324
    ]
......
325 329
    assert mocked_post.call_args[1]['json']['Key'] == '86569D0CA1B1CBEF8D77DD5BDC9F5CBAE5C99074'
326 330
    assert mocked_post.call_args[1]['json']['Contact']['Email'] == 'foo@example.com'
327 331
    assert mocked_post.call_args[1]['json']['Contact']['ExternalCode'] == 'b48def645758b95537d4'
328
    mocked_post.return_value = utils.FakedResponse(
332
    mocked_post.return_value = tests.utils.FakedResponse(
329 333
        content='{"InternalCode": "0000000273", "ReturnCode": 0, "Error": null}', status_code=200
330 334
    )
331
    mocked_get.return_value = utils.FakedResponse(content=CONTACT_RESPONSE, ok=True)
332
    mocked_put.return_value = utils.FakedResponse(content='', status_code=204)
335
    mocked_get.return_value = tests.utils.FakedResponse(content=CONTACT_RESPONSE, ok=True)
336
    mocked_put.return_value = tests.utils.FakedResponse(content='', status_code=204)
333 337
    connector.get_or_create_contact({'email': 'foo@example.com'})
334 338
    mocked_put.assert_called()
335 339
    assert mocked_put.call_args[1]['params']['id'] == '0000000273'
......
341 345
@mock.patch('passerelle.utils.Request.put')
342 346
@mock.patch('passerelle.utils.Request.get')
343 347
def test_book(mocked_get, mocked_put, mocked_post, app, connector):
344
    mocked_get.return_value = utils.FakedResponse(content=CONTACT_RESPONSE, status_code=200)
345
    url = utils.generic_endpoint_url('vivaticket', 'book')
348
    mocked_get.return_value = tests.utils.FakedResponse(content=CONTACT_RESPONSE, status_code=200)
349
    url = tests.utils.generic_endpoint_url('vivaticket', 'book')
346 350
    payload = {'id': 'formid', 'email': 'foo@example.com'}
347 351
    response = app.post_json(url, params=payload, status=400)
348 352
    payload['start_datetime'] = '2019-01-15'
......
361 365
    payload['end_datetime'] = '2019-01-15T11:00'
362 366
    # first return the API key, then the result of the booking creation
363 367
    mocked_post.side_effect = [
364
        utils.FakedResponse(content=KEY_RESPONSE, status_code=200),
365
        utils.FakedResponse(content=BOOKING_RESPONSE),
368
        tests.utils.FakedResponse(content=KEY_RESPONSE, status_code=200),
369
        tests.utils.FakedResponse(content=BOOKING_RESPONSE),
366 370
        Exception(),
367 371
    ]
368 372
    response = app.post_json(url, params=payload)
......
379 383

  
380 384
    # no more need to fake key response because the key is in cache
381 385
    mocked_post.side_effect = [
382
        utils.FakedResponse(text='This external booking code already exists.', ok=False)
386
        tests.utils.FakedResponse(text='This external booking code already exists.', ok=False)
383 387
    ]
384 388
    response = app.post_json(url, params=payload)
385 389
    assert response.json['err'] == 1
tests/wcs/test_sp_fr.py
17 17

  
18 18
import mock
19 19
import pytest
20
import utils
21 20

  
21
import tests.utils
22 22
from passerelle.apps.sp_fr.models import Resource
23 23
from passerelle.utils.sftp import SFTP
24 24
from passerelle.utils.wcs import FormDefRef, get_wcs_choices
......
43 43
            }
44 44
        }
45 45
    }
46
    yield utils.make_resource(
46
    yield tests.utils.make_resource(
47 47
        Resource,
48 48
        title='Test 1',
49 49
        slug='test1',
50
-