Projet

Général

Profil

0001-lille-urban-card-adapt-to-ATOS-webservices-not-match.patch

Frédéric Péters, 27 novembre 2020 15:59

Télécharger (3,93 ko)

Voir les différences:

Subject: [PATCH] lille urban card: adapt to ATOS webservices not matching
 their spec (#48933)

 passerelle/contrib/lille_urban_card/models.py | 12 +++++++-----
 tests/test_lille_urban_card.py                | 10 +++++-----
 2 files changed, 12 insertions(+), 10 deletions(-)
passerelle/contrib/lille_urban_card/models.py
203 203
    @endpoint(perm='can_access', description=_('Code check'), methods=['post'])
204 204
    def code_check(self, request, *args, **kwargs):
205 205
        data = json_loads(request.body)
206
        response = self.requests.post(
206
        if 'password' in data:
207
            data['code_secret'] = data.pop('password')
208
        response = self.requests.get(
207 209
                urljoin(self.base_url, '/clu/ws/verifierMdp'),
208
                json=data,
210
                data=data,
209 211
                auth=HttpBearerAuth(self.get_token()))
210 212
        response_json = response.json()
211 213
        if not isinstance(response_json, dict):
......
223 225
    @endpoint(perm='can_access', description=_('Get Card Info'), methods=['post'])
224 226
    def card_info(self, request, *args, **kwargs):
225 227
        data = json_loads(request.body)
226
        response = self.requests.post(
227
                urljoin(self.base_url, '/clu/ws/consulterCarte'),
228
                json=data,
228
        numero_serie = data.get('numero_serie')
229
        response = self.requests.get(
230
                urljoin(self.base_url, '/clu/ws/consulterCarte?numero_serie=%s' % numero_serie),
229 231
                auth=HttpBearerAuth(self.get_token()))
230 232
        response_json = response.json()
231 233
        if not isinstance(response_json, dict):
tests/test_lille_urban_card.py
66 66
            return {'content': json.dumps(error), 'status_code': 404}
67 67
        return {'content': json.dumps({}), 'status_code': 200}
68 68
    if url.path == '/clu/ws/verifierMdp':
69
        request_json = json_loads(request.body)
70
        if request_json.get('simulate_error') == 'wrong num serie':
69
        assert 'numero_serie=XXX&code_secret=1234' in request.body
70
        if 'simulate_error=wrong+num+serie' in request.body:
71 71
            error = {'statut': 'ERREUR_NUM_SERIE', 'erreur': 'Le numero de serie...'}
72 72
            return {'content': json.dumps(error), 'status_code': 404}
73 73
        return {'content': json.dumps({'message': 'Le mot de passe est valide'}), 'status_code': 200}
......
78 78
            return {'content': json.dumps(error), 'status_code': 409}
79 79
        return {'content': json.dumps({'message': 'ok'}), 'status_code': 200}
80 80
    if url.path == '/clu/ws/consulterCarte':
81
        request_json = json_loads(request.body)
82
        if request_json.get('simulate_error') == 'wrong num serie':
81
        if url.query == 'numero_serie=ERROR':
83 82
            error = {'erreur': 'Pas de carte attribuee correspondante'}
84 83
            return {'content': json.dumps(error), 'status_code': 404}
84
        assert url.query == 'numero_serie=XXX'
85 85
        return {'content': json.dumps({
86 86
            'numero_serie': 'XXX',
87 87
            'date_debut_abonnement': 'xx/xx/xxxx'}),
......
254 254

  
255 255
        # error handling
256 256
        resp = app.post_json(endpoint, params={
257
            'simulate_error': 'wrong num serie',
257
            'numero_serie': 'ERROR',
258 258
        }, status=200)
259 259
        assert resp.json['err'] == 1
260 260

  
261
-