toulouse-maelis: manage indicators on create_nursery_demand (#74445)
gitea/passerelle/pipeline/head This commit looks good
Details
gitea/passerelle/pipeline/head This commit looks good
Details
This commit is contained in:
parent
57b9c49afb
commit
3779347a85
|
@ -3285,6 +3285,23 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
post={'request_body': {'schema': {'application/json': family_schemas.NURSERY_DEMAND_SCHEMA}}},
|
||||
)
|
||||
def create_nursery_demand(self, request, post_data):
|
||||
apeIndicators = self.get_referential('ApeIndicator')
|
||||
for group in apeIndicators:
|
||||
if group['id'] == 'INDI_APE_ENF':
|
||||
key = 'child_indicators'
|
||||
elif group['id'] == 'INDI_APE_FAM':
|
||||
key = 'family_indicators'
|
||||
else:
|
||||
key = 'demand_indicators'
|
||||
expected_codes = [x['code'] for x in group['indicatorList']]
|
||||
for i, item in enumerate(post_data.get(key) or []):
|
||||
if item['code'] not in expected_codes:
|
||||
raise APIError(
|
||||
"%s/%i/code key value '%s' do not belong to APE '%s' indicators"
|
||||
% (key, i, item['code'], group['id'][-3:])
|
||||
)
|
||||
item['isActive'] = self.encode_bool(item['isActive'])
|
||||
|
||||
child_data = {}
|
||||
if post_data.get('child_id'):
|
||||
child_data['numPerson'] = post_data['child_id']
|
||||
|
|
|
@ -7678,7 +7678,20 @@ def test_get_nursery_geojson(con, app):
|
|||
|
||||
|
||||
def test_create_nursery_demand(ape_service, con, app):
|
||||
ape_service.add_soap_response('addApeBook', get_xml_file('R_create_nursery_demand.xml'))
|
||||
def request_check(request):
|
||||
assert [(x['code'], x['isActive']) for x in request.child['indiPersList']] == [
|
||||
('APE_ALLO', True),
|
||||
('APE-MINE', False),
|
||||
]
|
||||
assert [(x['code'], x['isActive']) for x in request.apeBook['indiResapeList']] == [
|
||||
('APE_FIRSTC', True),
|
||||
('APE_FRAT', False),
|
||||
]
|
||||
assert [(x['code'], x['isActive']) for x in request['indiFamList']] == [('APE_COMPO1', False)]
|
||||
|
||||
ape_service.add_soap_response(
|
||||
'addApeBook', get_xml_file('R_create_nursery_demand.xml'), request_check=request_check
|
||||
)
|
||||
data = {
|
||||
'family_id': '322425',
|
||||
'accept_other_nurseries': False,
|
||||
|
@ -7691,14 +7704,14 @@ def test_create_nursery_demand(ape_service, con, app):
|
|||
'number_of_days': '1',
|
||||
'child_indicators/0/code': 'APE_ALLO',
|
||||
'child_indicators/0/isActive': True,
|
||||
'child_indicators/1/code': 'code2',
|
||||
'child_indicators/1/code': 'APE-MINE',
|
||||
'child_indicators/1/isActive': False,
|
||||
'demand_indicators/0/code': 'APE_ALLO',
|
||||
'demand_indicators/0/isActive': True,
|
||||
'demand_indicators/1/code': 'APE_ALLO',
|
||||
'demand_indicators/1/isActive': False,
|
||||
'family_indicators/0/code': 'APE_ALLO',
|
||||
'family_indicators/0/isActive': False,
|
||||
'demand_indicators/0/code': 'APE_FIRSTC',
|
||||
'demand_indicators/0/isActive': 'Oui',
|
||||
'demand_indicators/1/code': 'APE_FRAT',
|
||||
'demand_indicators/1/isActive': 0,
|
||||
'family_indicators/0/code': 'APE_COMPO1',
|
||||
'family_indicators/0/isActive': 'False',
|
||||
'start_hour_Mon': '09:00',
|
||||
'end_hour_Mon': '18:00',
|
||||
'nursery1/idActivity': 'M10000000004',
|
||||
|
@ -7713,3 +7726,20 @@ def test_create_nursery_demand(ape_service, con, app):
|
|||
data['start_hour_Tue'] = ''
|
||||
resp = app.post_json(url, params=data)
|
||||
assert resp.json['err'] == 0
|
||||
|
||||
|
||||
def test_create_nursery_demand_wrong_referential_key_error(con, app):
|
||||
url = get_endpoint('create-nursery-demand')
|
||||
params = {
|
||||
'family_id': '322425',
|
||||
'start_date': '2023-04-01',
|
||||
'family_indicators/0/code': 'APE_ALLO',
|
||||
'family_indicators/0/isActive': 'False',
|
||||
}
|
||||
|
||||
resp = app.post_json(url, params=params)
|
||||
assert resp.json['err'] == 1
|
||||
assert (
|
||||
resp.json['err_desc']
|
||||
== "family_indicators/0/code key value 'APE_ALLO' do not belong to APE 'FAM' indicators"
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue