solis_afi_mss: allow indexIndividus in declare-tax endpoint (#76820)
gitea/passerelle/pipeline/head There was a failure building this commit
Details
gitea/passerelle/pipeline/head There was a failure building this commit
Details
This commit is contained in:
parent
6d55216e43
commit
a75835584b
|
@ -66,6 +66,11 @@ TAX_SCHEMA = {
|
||||||
'description': 'Tax amount',
|
'description': 'Tax amount',
|
||||||
'type': 'string',
|
'type': 'string',
|
||||||
},
|
},
|
||||||
|
'indexIndividus': {
|
||||||
|
'description': "List of related family member indexes separated by ':'",
|
||||||
|
'type': 'string',
|
||||||
|
'pattern': r'^[0-9 :]+$',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -332,7 +337,15 @@ class SolisAfiMss(BaseResource, HTTPResource):
|
||||||
post={'request_body': {'schema': {'application/json': TAX_SCHEMA}}},
|
post={'request_body': {'schema': {'application/json': TAX_SCHEMA}}},
|
||||||
)
|
)
|
||||||
def declare_tax(self, request, email, post_data):
|
def declare_tax(self, request, email, post_data):
|
||||||
post_data['indexAgent'] = str(self.search_from_email(email)['index'])
|
results = self.search_from_email(email)
|
||||||
|
post_data['indexAgent'] = str(results['index'])
|
||||||
|
if post_data.get('indexIndividus'):
|
||||||
|
related_persons = []
|
||||||
|
for person in results['adults'] + results['children']:
|
||||||
|
for index in [x.strip() for x in post_data['indexIndividus'].split(':') if x.strip()]:
|
||||||
|
if str(person['indexIndividu']) == index:
|
||||||
|
related_persons.append(index)
|
||||||
|
post_data['indexIndividus'] = related_persons
|
||||||
response = self.request(self.base_url + 'afi/budget/declarerImpot/', json=post_data)
|
response = self.request(self.base_url + 'afi/budget/declarerImpot/', json=post_data)
|
||||||
return {'data': response}
|
return {'data': response}
|
||||||
|
|
||||||
|
|
|
@ -523,6 +523,30 @@ def test_declare_tax(mocked_post, mocked_get, app, connector, response1, respons
|
||||||
data.pop('err_desc')
|
data.pop('err_desc')
|
||||||
assert resp.json == {'err': 0, 'data': data}
|
assert resp.json == {'err': 0, 'data': data}
|
||||||
|
|
||||||
|
mocked_post.reset_mock()
|
||||||
|
mocked_get.side_effect = [response1]
|
||||||
|
mocked_post.side_effect = [response2]
|
||||||
|
payload['indexIndividus'] = '434729:389229 :389230: ::424242:'
|
||||||
|
resp = app.post_json(endpoint + '?email=foo@dummy.org', params=payload)
|
||||||
|
assert mocked_post.mock_calls == [
|
||||||
|
mock.call(
|
||||||
|
'https://solis-afi-mss.example.net/afi/budget/declarerImpot/',
|
||||||
|
headers={'Accept': 'application/json'},
|
||||||
|
json={
|
||||||
|
'indexAgent': '389227',
|
||||||
|
'indexImposition': '368',
|
||||||
|
'anneeImposition': '2011',
|
||||||
|
'nombrePartImposition': '3.2',
|
||||||
|
'montantImposition': '777.77',
|
||||||
|
'indexIndividus': ['434729', '389229', '389230'],
|
||||||
|
},
|
||||||
|
)
|
||||||
|
]
|
||||||
|
data = json.loads(response2.content)
|
||||||
|
data.pop('err')
|
||||||
|
data.pop('err_desc')
|
||||||
|
assert resp.json == {'err': 0, 'data': data}
|
||||||
|
|
||||||
|
|
||||||
@mock.patch('passerelle.utils.Request.get')
|
@mock.patch('passerelle.utils.Request.get')
|
||||||
@mock.patch('passerelle.utils.Request.post')
|
@mock.patch('passerelle.utils.Request.post')
|
||||||
|
|
Loading…
Reference in New Issue