lille urban card: allow path in base URL (#80444)
gitea/passerelle/pipeline/head This commit looks good Details

This commit is contained in:
Frédéric Péters 2023-08-18 12:02:38 +02:00
parent bcfc02d94a
commit 306cba2423
2 changed files with 20 additions and 20 deletions

View File

@ -53,7 +53,7 @@ class LilleUrbanCard(BaseResource):
def get_token(self):
response = self.requests.post(
urljoin(self.base_url, '/clu/ws/auth/connexion'),
urljoin(self.base_url, 'clu/ws/auth/connexion'),
json={'login': self.username, 'password': self.password},
).json()
if response.get('erreur'):
@ -138,7 +138,7 @@ class LilleUrbanCard(BaseResource):
self.preprocess_contact_data(data)
self.preprocess_service_data(data)
response = self.requests.post(
urljoin(self.base_url, '/clu/ws/demanderCarte'), json=data, auth=HttpBearerAuth(self.get_token())
urljoin(self.base_url, 'clu/ws/demanderCarte'), json=data, auth=HttpBearerAuth(self.get_token())
)
response_json = response.json()
if not isinstance(response_json, dict):
@ -160,7 +160,7 @@ class LilleUrbanCard(BaseResource):
)
def card_status(self, request, n_demande_clu):
response = self.requests.get(
urljoin(self.base_url, '/clu/ws/consulterDemande/%s' % n_demande_clu),
urljoin(self.base_url, 'clu/ws/consulterDemande/%s' % n_demande_clu),
auth=HttpBearerAuth(self.get_token()),
).json()
return {'data': response}
@ -175,7 +175,7 @@ class LilleUrbanCard(BaseResource):
# remove attributes that are forbidden by this API
del data[attribute]
response = self.requests.post(
urljoin(self.base_url, '/clu/ws/ajouterAbonnements'),
urljoin(self.base_url, 'clu/ws/ajouterAbonnements'),
json=data,
auth=HttpBearerAuth(self.get_token()),
)
@ -193,7 +193,7 @@ class LilleUrbanCard(BaseResource):
def code_change(self, request, *args, **kwargs):
data = json.loads(request.body)
response = self.requests.post(
urljoin(self.base_url, '/clu/ws/modifierCodeSecret'),
urljoin(self.base_url, 'clu/ws/modifierCodeSecret'),
json=data,
auth=HttpBearerAuth(self.get_token()),
)
@ -213,7 +213,7 @@ class LilleUrbanCard(BaseResource):
if 'password' in data:
data['code_secret'] = data.pop('password')
response = self.requests.get(
urljoin(self.base_url, '/clu/ws/verifierMdp'), data=data, auth=HttpBearerAuth(self.get_token())
urljoin(self.base_url, 'clu/ws/verifierMdp'), data=data, auth=HttpBearerAuth(self.get_token())
)
response_json = response.json()
if not isinstance(response_json, dict):
@ -240,7 +240,7 @@ class LilleUrbanCard(BaseResource):
if not numero_serie or numero_serie == 'None':
raise APIError('missing numero_serie')
response = self.requests.get(
urljoin(self.base_url, '/clu/ws/consulterCarte?numero_serie=%s' % numero_serie),
urljoin(self.base_url, 'clu/ws/consulterCarte?numero_serie=%s' % numero_serie),
auth=HttpBearerAuth(self.get_token()),
)
response_json = response.json()
@ -262,7 +262,7 @@ class LilleUrbanCard(BaseResource):
data = json.loads(request.body)
self.preprocess_contact_data(data)
response = self.requests.post(
urljoin(self.base_url, '/clu/ws/revoquerCarte'), json=data, auth=HttpBearerAuth(self.get_token())
urljoin(self.base_url, 'clu/ws/revoquerCarte'), json=data, auth=HttpBearerAuth(self.get_token())
)
response_json = response.json()
if not isinstance(response_json, dict):
@ -280,7 +280,7 @@ class LilleUrbanCard(BaseResource):
self.preprocess_contact_data(data)
self.preprocess_service_data(data)
response = self.requests.post(
urljoin(self.base_url, '/clu/ws/revoquerAbonnement'),
urljoin(self.base_url, 'clu/ws/revoquerAbonnement'),
json=data,
auth=HttpBearerAuth(self.get_token()),
)
@ -299,7 +299,7 @@ class LilleUrbanCard(BaseResource):
data = json.loads(request.body)
self.preprocess_contact_data(data)
response = self.requests.post(
urljoin(self.base_url, '/clu/ws/renouvelerAbonnements'),
urljoin(self.base_url, 'clu/ws/renouvelerAbonnements'),
json=data,
auth=HttpBearerAuth(self.get_token()),
)

View File

@ -13,7 +13,7 @@ from passerelle.utils.jsonresponse import APIError
def connector(db):
return tests.utils.setup_access_rights(
LilleUrbanCard.objects.create(
slug='test', base_url='http://localhost', username='test', password='secret'
slug='test', base_url='http://localhost/api/', username='test', password='secret'
)
)
@ -23,9 +23,9 @@ TOKEN_RESPONSE = '{"token": "eyJhbGciO..."}'
def mocked_http(url, request):
if url.path == '/clu/ws/auth/connexion':
if url.path == '/api/clu/ws/auth/connexion':
return {'content': TOKEN_RESPONSE, 'status_code': 200}
if url.path == '/clu/ws/demanderCarte':
if url.path == '/api/clu/ws/demanderCarte':
request_json = json.loads(request.body)
if request_json.get('simulate_error') == 'doublon':
error = {'erreur': 'Demande 113-9166 : 1 demande(s) ...'}
@ -38,7 +38,7 @@ def mocked_http(url, request):
'request': request_json, # for tests
}
return {'content': json.dumps(content), 'status_code': 200}
if url.path.startswith('/clu/ws/consulterDemande/'):
if url.path.startswith('/api/clu/ws/consulterDemande/'):
content = {
'n_demande_clu': '...',
'statut': '200',
@ -46,7 +46,7 @@ def mocked_http(url, request):
'date': '2019-01-01 00:00:00',
}
return {'content': json.dumps(content), 'status_code': 200}
if url.path == '/clu/ws/ajouterAbonnements':
if url.path == '/api/clu/ws/ajouterAbonnements':
request_json = json.loads(request.body)
if request_json.get('simulate_error') == 'data':
error = {'statut': 'ERREUR_DONNEES', 'erreur': 'Demande vide...'}
@ -56,31 +56,31 @@ def mocked_http(url, request):
'request': request_json, # for tests
}
return {'content': json.dumps(content), 'status_code': 200}
if url.path == '/clu/ws/modifierCodeSecret':
if url.path == '/api/clu/ws/modifierCodeSecret':
request_json = json.loads(request.body)
if request_json.get('simulate_error') == 'wrong num serie':
error = {'statut': 'ERREUR_NUM_SERIE', 'erreur': 'Le numero de serie...'}
return {'content': json.dumps(error), 'status_code': 404}
return {'content': json.dumps({}), 'status_code': 200}
if url.path == '/clu/ws/verifierMdp':
if url.path == '/api/clu/ws/verifierMdp':
assert 'numero_serie=XXX' in request.body and 'code_secret=1234' in request.body
if 'simulate_error=wrong+num+serie' in request.body:
error = {'statut': 'ERREUR_NUM_SERIE', 'erreur': 'Le numero de serie...'}
return {'content': json.dumps(error), 'status_code': 404}
return {'content': json.dumps({'message': 'Le mot de passe est valide'}), 'status_code': 200}
if url.path in ('/clu/ws/revoquerCarte', '/clu/ws/revoquerAbonnement'):
if url.path in ('/api/clu/ws/revoquerCarte', '/api/clu/ws/revoquerAbonnement'):
request_json = json.loads(request.body)
if request_json.get('simulate_error') == 'doublon':
error = {'erreur': 'La demande xx existe...'}
return {'content': json.dumps(error), 'status_code': 409}
return {'content': json.dumps({'message': 'ok'}), 'status_code': 200}
if url.path == '/clu/ws/renouvelerAbonnements':
if url.path == '/api/clu/ws/renouvelerAbonnements':
request_json = json.loads(request.body)
if request_json.get('simulate_error') == 'wrong num serie':
error = {'statut': 'ERREUR_NUM_SERIE', 'erreur': 'Le numero de serie...'}
return {'content': json.dumps(error), 'status_code': 409}
return {'content': json.dumps({'n_demande_clu': 10000507}), 'status_code': 200}
if url.path == '/clu/ws/consulterCarte':
if url.path == '/api/clu/ws/consulterCarte':
if url.query == 'numero_serie=ERROR':
error = {'erreur': 'Pas de carte attribuee correspondante'}
return {'content': json.dumps(error), 'status_code': 404}