api_particulier: verify avis-imposition args, must be 13 chars long (#44683)
This commit is contained in:
parent
b1cab1d592
commit
029e107533
|
@ -170,11 +170,13 @@ class APIParticulier(BaseResource):
|
|||
},
|
||||
})
|
||||
def v2_avis_imposition(self, request, numero_fiscal, reference_avis, user=None):
|
||||
if not numero_fiscal.strip() or not reference_avis.strip():
|
||||
raise APIError('missing numero_fiscal or reference_avis', status_code=400)
|
||||
numero_fiscal = numero_fiscal.strip()[:13]
|
||||
reference_avis = reference_avis.strip()[:13]
|
||||
if len(numero_fiscal) < 13 or len(reference_avis) < 13:
|
||||
raise APIError('bad numero_fiscal or reference_avis, must be 13 chars long', status_code=400)
|
||||
return self.get('v2/avis-imposition', params={
|
||||
'numeroFiscal': numero_fiscal,
|
||||
'referenceAvis': reference_avis[:13],
|
||||
'referenceAvis': reference_avis,
|
||||
}, user=user)
|
||||
|
||||
@endpoint(perm='can_access',
|
||||
|
|
|
@ -155,8 +155,8 @@ def resource(db):
|
|||
def test_error(app, resource, mock_api_particulier):
|
||||
vector = [
|
||||
(['impots_svair', 'avis-imposition'], {
|
||||
'numero_fiscal': 12,
|
||||
'reference_avis': 15,
|
||||
'numero_fiscal': '1234567890123',
|
||||
'reference_avis': '3210987654321',
|
||||
}),
|
||||
(['caf_famille', 'situation-familiale'], {
|
||||
'code_postal': 12,
|
||||
|
@ -223,6 +223,35 @@ def test_error(app, resource, mock_api_particulier):
|
|||
for endpoint in endpoints:
|
||||
do(endpoint, params)
|
||||
|
||||
resp = endpoint_get(
|
||||
'/api-particulier/test/avis-imposition',
|
||||
app,
|
||||
resource,
|
||||
'avis-imposition',
|
||||
params={
|
||||
'numero_fiscal': ' 1234567890', # too short
|
||||
'reference_avis': '3210987654321',
|
||||
'user': 'John Doe',
|
||||
})
|
||||
assert resp.status_code == 200
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['data'] is None
|
||||
assert 'must be 13 chars long' in resp.json['err_desc']
|
||||
resp = endpoint_get(
|
||||
'/api-particulier/test/avis-imposition',
|
||||
app,
|
||||
resource,
|
||||
'avis-imposition',
|
||||
params={
|
||||
'numero_fiscal': '1234567890123',
|
||||
'reference_avis': '32109876543 ', # too short
|
||||
'user': 'John Doe',
|
||||
})
|
||||
assert resp.status_code == 200
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['data'] is None
|
||||
assert 'must be 13 chars long' in resp.json['err_desc']
|
||||
|
||||
|
||||
def test_avis_imposition(app, resource, mock_api_particulier):
|
||||
resp = endpoint_get(
|
||||
|
@ -231,11 +260,27 @@ def test_avis_imposition(app, resource, mock_api_particulier):
|
|||
resource,
|
||||
'avis-imposition',
|
||||
params={
|
||||
'numero_fiscal': 12,
|
||||
'reference_avis': 15,
|
||||
'numero_fiscal': '1234567890123',
|
||||
'reference_avis': '3210987654321',
|
||||
'user': 'John Doe',
|
||||
})
|
||||
assert resp.status_code == 200
|
||||
assert resp.json['data']['montantImpot'] == 2165
|
||||
assert resp.json['err'] == 0
|
||||
|
||||
resp = endpoint_get(
|
||||
'/api-particulier/test/avis-imposition',
|
||||
app,
|
||||
resource,
|
||||
'avis-imposition',
|
||||
params={
|
||||
'numero_fiscal': '1234567890123X', # 14 chars : will be cutted
|
||||
'reference_avis': '3210987654321X', # idem
|
||||
'user': 'John Doe',
|
||||
})
|
||||
assert resp.status_code == 200
|
||||
assert resp.json['data']['montantImpot'] == 2165
|
||||
assert resp.json['err'] == 0
|
||||
|
||||
|
||||
def test_situation_familiale(app, resource, mock_api_particulier):
|
||||
|
@ -276,8 +321,8 @@ def test_api_particulier_dont_log_not_found(app, resource, mock, should_log):
|
|||
resource,
|
||||
'avis-imposition',
|
||||
params={
|
||||
'numero_fiscal': 12,
|
||||
'reference_avis': 15,
|
||||
'numero_fiscal': '1234567890123',
|
||||
'reference_avis': '3210987654321',
|
||||
})
|
||||
logs = ResourceLog.objects.all()
|
||||
assert logs.count() == 3
|
||||
|
|
Loading…
Reference in New Issue