toulouse_axel: don't jump to closest friday (#43802)

This commit is contained in:
Lauréline Guérin 2020-06-09 11:37:25 +02:00
parent 3c402c72ab
commit 964ec74abc
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
3 changed files with 14 additions and 32 deletions

View File

@ -943,9 +943,6 @@ class ToulouseAxel(BaseResource):
except ValueError:
raise APIError('bad date format, should be YYYY-MM-DD', err_code='bad-request', http_status=400)
# if end_date is not a friday: jump to next or previous friday
end_date = utils.get_closest_friday(end_date)
today = datetime.date.today()
in_8_days = today + datetime.timedelta(days=8)
@ -980,8 +977,10 @@ class ToulouseAxel(BaseResource):
# cross all weeks until end date
while week_end_date <= end_date:
result += [a for a in get_activities_for_week(max(start_date, week_start_date), week_end_date)]
if week_end_date == end_date:
break
week_start_date = week_start_date + datetime.timedelta(days=7)
week_end_date = week_end_date + datetime.timedelta(days=7)
week_end_date = min(week_end_date + datetime.timedelta(days=7), end_date)
return {'data': result}
@endpoint(
@ -1013,9 +1012,6 @@ class ToulouseAxel(BaseResource):
if start_date.weekday() > 4:
start_date = start_date + datetime.timedelta(days=7 - start_date.weekday())
# if end_date is not a friday: jump to next or previous friday
end_date = utils.get_closest_friday(end_date)
def get_activity_days_for_week(week_start_date, week_end_date):
# ask Axel for the booking of a week (starts may be a monday, ends a friday)
activities = self.get_booking_data(
@ -1042,8 +1038,10 @@ class ToulouseAxel(BaseResource):
# cross all weeks until end date
while week_end_date <= end_date:
activity_days += [d for d in get_activity_days_for_week(max(start_date, week_start_date), week_end_date)]
if week_end_date == end_date:
break
week_start_date = week_start_date + datetime.timedelta(days=7)
week_end_date = week_end_date + datetime.timedelta(days=7)
week_end_date = min(week_end_date + datetime.timedelta(days=7), end_date)
return {'data': activity_days}

View File

@ -222,16 +222,6 @@ def get_week_dates_from_date(booking_date):
)
def get_closest_friday(some_date):
if some_date.weekday() < 4:
# next friday
return some_date + datetime.timedelta(4 - some_date.weekday())
if some_date.weekday() > 4:
# previous friday
return some_date - datetime.timedelta(some_date.weekday() - 4)
return some_date
def get_booking(value):
# 0: no registration
# 1: registration

View File

@ -2553,16 +2553,13 @@ def test_clae_booking_activities_info_endpoint(app, resource, child_activities_d
@freezegun.freeze_time('2020-03-26')
@pytest.mark.parametrize('start_date, end_date, last_date', [
# end date is a not a friday => ends on friday
('2020-04-07', '2020-04-13', '2020-04-17'),
('2020-04-07', '2020-04-14', '2020-04-17'),
('2020-04-07', '2020-04-15', '2020-04-17'),
('2020-04-07', '2020-04-16', '2020-04-17'),
# end date is a not a friday
('2020-04-07', '2020-04-13', '2020-04-13'),
# except if end date is saturday or sunday => ends on previous friday
('2020-04-07', '2020-04-18', '2020-04-17'),
('2020-04-07', '2020-04-19', '2020-04-17'),
# start date is after end date, same week
('2020-04-16', '2020-04-15', '2020-04-17'),
# start date is after end date, same week => result is empty
('2020-04-16', '2020-04-15', None),
# start date is after end date, not the same week => result is empty
('2020-04-16', '2020-04-12', None),
])
@ -2795,16 +2792,13 @@ def test_clae_booking_activity_possible_days_endpoint(app, resource, child_activ
('2020-03-26', '2020-04-06', '2020-04-06', '2020-04-17', '2020-04-17'),
# start date is a tuesday => starts on tuesday
('2020-03-26', '2020-04-07', '2020-04-07', '2020-04-17', '2020-04-17'),
# end date is a not a friday => ends on friday
('2020-03-26', '2020-04-07', '2020-04-07', '2020-04-13', '2020-04-17'),
('2020-03-26', '2020-04-07', '2020-04-07', '2020-04-14', '2020-04-17'),
('2020-03-26', '2020-04-07', '2020-04-07', '2020-04-15', '2020-04-17'),
('2020-03-26', '2020-04-07', '2020-04-07', '2020-04-16', '2020-04-17'),
# end date is a not a friday
('2020-03-26', '2020-04-07', '2020-04-07', '2020-04-13', '2020-04-13'),
# except if end date is saturday or sunday => ends on previous friday
('2020-03-26', '2020-04-07', '2020-04-07', '2020-04-18', '2020-04-17'),
('2020-03-26', '2020-04-07', '2020-04-07', '2020-04-19', '2020-04-17'),
# start date is after end date, same week
('2020-03-26', '2020-04-16', '2020-04-16', '2020-04-15', '2020-04-17'),
# start date is after end date, same week => result is empty
('2020-03-26', '2020-04-16', None, '2020-04-15', None),
# start date is after end date, not the same week => result is empty
('2020-03-26', '2020-04-16', None, '2020-04-12', None),
])