toulouse-axel: fix possible days endpoint (#78903)
gitea/passerelle/pipeline/head This commit looks good
Details
gitea/passerelle/pipeline/head This commit looks good
Details
This commit is contained in:
parent
0616f216bf
commit
f928a10fc5
|
@ -1014,14 +1014,15 @@ class ToulouseAxel(BaseResource):
|
|||
# build the response payload: add booking to activities information
|
||||
booking_days = {}
|
||||
for booking in child_booking.get('ACTIVITE', []):
|
||||
jour = (booking.get('JOUR') or '').ljust(5, '0')
|
||||
booking_days[booking['IDACTIVITE']] = {
|
||||
'raw_value': booking['JOUR'],
|
||||
'raw_value': jour,
|
||||
'days': {
|
||||
'monday': utils.get_booking(booking['JOUR'][0]),
|
||||
'tuesday': utils.get_booking(booking['JOUR'][1]),
|
||||
'wednesday': utils.get_booking(booking['JOUR'][2]),
|
||||
'thursday': utils.get_booking(booking['JOUR'][3]),
|
||||
'friday': utils.get_booking(booking['JOUR'][4]),
|
||||
'monday': utils.get_booking(jour[0]),
|
||||
'tuesday': utils.get_booking(jour[1]),
|
||||
'wednesday': utils.get_booking(jour[2]),
|
||||
'thursday': utils.get_booking(jour[3]),
|
||||
'friday': utils.get_booking(jour[4]),
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -3341,6 +3341,65 @@ def test_clae_booking_activity_possible_days_endpoint_no_result(app, resource, c
|
|||
assert resp.json['err'] == 0
|
||||
assert resp.json['data'] == []
|
||||
|
||||
content = """<PORTAIL>
|
||||
<DUI>
|
||||
<IDDUI>XXX</IDDUI>
|
||||
<ENFANT>
|
||||
<IDPERSONNE>3535</IDPERSONNE>
|
||||
<ACTIVITE>
|
||||
<ANNEEREFERENCE>2019</ANNEEREFERENCE>
|
||||
<IDACTIVITE>A19P1M1</IDACTIVITE>
|
||||
<JOUR/>
|
||||
</ACTIVITE>
|
||||
</ENFANT>
|
||||
</DUI>
|
||||
</PORTAIL>"""
|
||||
activities = child_activities_data['ENFANT'][0]
|
||||
with mock_getdata(content, 'ReservationPeriode'):
|
||||
with mock.patch(
|
||||
'passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_child_activities',
|
||||
return_value=activities,
|
||||
):
|
||||
resp = app.get(
|
||||
'/toulouse-axel/test/clae_booking_activity_possible_days?NameID=yyy&idpersonne=3535'
|
||||
'&start_date=2020-01-20&end_date=2020-01-24&activity_type=MAT'
|
||||
)
|
||||
assert resp.json['err'] == 0
|
||||
assert len(resp.json['data']) == 5
|
||||
assert (
|
||||
list(d['details']['booking']['days'] for d in resp.json['data'])
|
||||
== [{'monday': False, 'tuesday': False, 'wednesday': False, 'thursday': False, 'friday': False}] * 5
|
||||
)
|
||||
|
||||
content = """<PORTAIL>
|
||||
<DUI>
|
||||
<IDDUI>XXX</IDDUI>
|
||||
<ENFANT>
|
||||
<IDPERSONNE>3535</IDPERSONNE>
|
||||
<ACTIVITE>
|
||||
<ANNEEREFERENCE>2019</ANNEEREFERENCE>
|
||||
<IDACTIVITE>A19P1M1</IDACTIVITE>
|
||||
<JOUR>2</JOUR> <!-- invalid value returned by axel, five digits are required -->
|
||||
</ACTIVITE>
|
||||
</ENFANT>
|
||||
</DUI>
|
||||
</PORTAIL>"""
|
||||
activities = child_activities_data['ENFANT'][0]
|
||||
with mock_getdata(content, 'ReservationPeriode'):
|
||||
with mock.patch(
|
||||
'passerelle.contrib.toulouse_axel.models.ToulouseAxel.get_child_activities',
|
||||
return_value=activities,
|
||||
):
|
||||
resp = app.get(
|
||||
'/toulouse-axel/test/clae_booking_activity_possible_days?NameID=yyy&idpersonne=3535'
|
||||
'&start_date=2020-01-20&end_date=2020-01-24&activity_type=MAT'
|
||||
)
|
||||
assert len(resp.json['data']) == 5
|
||||
assert (
|
||||
list(d['details']['booking']['days'] for d in resp.json['data'])
|
||||
== [{'monday': False, 'tuesday': False, 'wednesday': False, 'thursday': False, 'friday': False}] * 5
|
||||
)
|
||||
|
||||
|
||||
@freezegun.freeze_time('2019-09-01')
|
||||
def test_clae_booking_activity_possible_days_endpoint(app, resource, child_activities_data):
|
||||
|
|
Loading…
Reference in New Issue