toulouse-maelis: accept an empty string as recurrent week (#78009)
gitea/passerelle/pipeline/head This commit looks good Details

This commit is contained in:
Nicolas Roche 2023-05-30 14:36:57 +02:00
parent d21669a250
commit 8df0c9ec11
2 changed files with 109 additions and 16 deletions

View File

@ -83,6 +83,23 @@ BOOKING_ACTIVITY_SCHEMA = {
],
}
RECURRENT_WEEK_SCHEMA = {
'oneOf': [
{
'type': 'array',
'items': {
'type': 'string',
'pattern': '^[1-7]-[A-Z]$',
},
},
{'type': 'null'},
{
'type': 'string',
'pattern': '^$',
},
],
}
UPDATE_RECURRENT_WEEK_SCHEMA = {
'type': 'object',
'properties': {
@ -102,13 +119,7 @@ UPDATE_RECURRENT_WEEK_SCHEMA = {
'type': 'string',
'pattern': '^([0-9]{4}-[0-9]{2}-[0-9]{2}){0,1}$',
},
'recurrent_week': {
'type': 'array',
'items': {
'type': 'string',
'pattern': '^[1-7]-[A-Z]$',
},
},
'recurrent_week': RECURRENT_WEEK_SCHEMA,
},
'required': [
'person_id',
@ -147,15 +158,7 @@ SUBSCRIPTION_SCHEMA = {
'type': 'string',
'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}$',
},
'recurrent_week': {
'oneOf': [
{
'type': 'array',
'items': {'type': 'string'},
},
{'type': 'null'},
],
},
'recurrent_week': RECURRENT_WEEK_SCHEMA,
'conveyanceSubscribe': {
'type': 'object',
'properties': {

View File

@ -5705,6 +5705,38 @@ def test_update_recurrent_week(family_service, activity_service, con, app):
assert resp.json['data'] == 'ok'
def test_update_recurrent_week_empty(family_service, activity_service, con, app):
def request_check(request):
assert serialize_object(request.dayWeekInfoList) == [
{'dayNum': 1, 'isPresent': False, 'isOpen': None, 'calendarLetter': None},
{'dayNum': 2, 'isPresent': False, 'isOpen': None, 'calendarLetter': None},
{'dayNum': 3, 'isPresent': False, 'isOpen': None, 'calendarLetter': None},
{'dayNum': 4, 'isPresent': False, 'isOpen': None, 'calendarLetter': None},
{'dayNum': 5, 'isPresent': False, 'isOpen': None, 'calendarLetter': None},
{'dayNum': 6, 'isPresent': False, 'isOpen': None, 'calendarLetter': None},
{'dayNum': 7, 'isPresent': False, 'isOpen': None, 'calendarLetter': None},
]
family_service.add_soap_response('readFamily', get_xml_file('R_read_family.xml'))
activity_service.add_soap_response(
'updateWeekCalendar',
get_xml_file('R_update_week_calendar.xml'),
request_check=request_check,
)
url = get_endpoint('update-recurrent-week')
params = {
'person_id': '613880',
'activity_id': 'A10049327682',
'start_date': '2023-04-01',
'end_date': '2023-04-30',
'recurrent_week': '',
}
resp = app.post_json(url + '?family_id=311323', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == 'ok'
def test_update_recurrent_week_not_linked_error(con, app):
url = get_endpoint('update-recurrent-week')
params = {
@ -7648,6 +7680,35 @@ def test_add_person_basket_subscription_with_recurrent_week(family_service, acti
assert resp.json['err'] == 0
def test_add_person_basket_subscription_with_recurrent_week_empty(family_service, activity_service, con, app):
def request_check(request):
assert serialize_object(request.dayWeekInfoList) == []
family_service.add_soap_response('readFamily', get_xml_file('R_read_family.xml'))
activity_service.add_soap_response(
'getPersonUnitInfo',
get_xml_file('R_get_person_unit_info_with_recurrent_week.xml'),
)
activity_service.add_soap_response(
'addPersonUnitBasket',
get_xml_file('R_add_person_unit_basket.xml'),
request_check=request_check,
)
url = get_endpoint('add-person-basket-subscription')
params = {
'person_id': '613880',
'activity_id': 'A10051141965',
'unit_id': 'A10051141990',
'place_id': 'A10053179226',
'start_date': '2022-09-01',
'end_date': '2023-08-31',
'recurrent_week': '',
}
resp = app.post_json(url + '?family_id=311323', params=params)
assert resp.json['err'] == 0
def test_basket_subscription_providing_wcs_demand(family_service, activity_service, con, app):
family_service.add_soap_response('readFamily', get_xml_file('R_read_family_for_subscription.xml'))
activity_service.add_soap_response('getPersonUnitInfo', get_xml_file('R_get_person_unit_info.xml'))
@ -7930,6 +7991,35 @@ def test_add_person_subscription_with_recurrent_week(family_service, activity_se
assert resp.json['err'] == 0
def test_add_person_subscription_with_recurrent_week_empty(family_service, activity_service, con, app):
def request_check(request):
assert serialize_object(request.dayWeekInfoList) == []
family_service.add_soap_response('readFamily', get_xml_file('R_read_family.xml'))
activity_service.add_soap_response(
'getPersonUnitInfo',
get_xml_file('R_get_person_unit_info_with_recurrent_week.xml'),
)
activity_service.add_soap_response(
'addPersonUnitSubscribe',
get_xml_file('R_add_person_unit_subscribe.xml'),
request_check=request_check,
)
url = get_endpoint('add-person-subscription')
params = {
'person_id': '613880',
'activity_id': 'A10051141965',
'unit_id': 'A10051141990',
'place_id': 'A10053179226',
'start_date': '2022-09-01',
'end_date': '2023-08-31',
'recurrent_week': '',
}
resp = app.post_json(url + '?family_id=311323', params=params)
assert resp.json['err'] == 0
def test_add_person_subscription_with_conveyance(family_service, activity_service, con, app):
def request_check(request):
assert serialize_object(request.conveyanceSubscribe) == {