oncall-engine/engine/apps/schedules/tests
Zachary Sistrunk 4afba220ea
Fix issue with DST starting/ending causing overlaps/gaps (#5266)
# What this PR does

This older version of recurring_ical_events does not call the pytz
.normalize() function, which can cause some invalid datetime objects to
return when a DST swap happens. For example: Nov 3, 2024 9:00 AM CDT
instead of the correct 8:00 AM CST). By calling tz.normalize on the end
date and checking if the time zone information changed, we can detect
when DST starts/stops and adjust the end date accordingly.

| | DST stopping on November 3, 2024: | DST starting on March 9, 2024 |

|-|-----------------------------------------|-----------------------------------|
| Before |
![image](https://github.com/user-attachments/assets/933bce80-9b6a-475b-88f2-6356d0e3a6fd)
|
![image](https://github.com/user-attachments/assets/264b816f-6f40-4f14-bbc0-1d03f7b74ac4)
| After |
![image](https://github.com/user-attachments/assets/fbd71991-c4f8-4685-a527-6dbb147b2cb6)
|
![image](https://github.com/user-attachments/assets/ccd932df-2ab4-4472-bc90-045372712f75)
|

## Which issue(s) this PR closes

Closes #5247

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.

---------

Co-authored-by: Matias Bordese <mbordese@gmail.com>
2024-11-20 17:04:25 +00:00
..
calendars Handle ical schedule import with duplicated event UIDs (#2760) 2023-08-07 13:11:46 +00:00
tasks feat: convert schedule.channel (char field) to schedule.slack_channel (foreign key) (#5199) 2024-11-04 14:27:21 -05:00
__init__.py World, meet OnCall! 2022-06-03 08:09:47 -06:00
conftest.py World, meet OnCall! 2022-06-03 08:09:47 -06:00
custom_shift_test_cases.py Fix for user appearing in shift rotation when they should not be (#5064) 2024-10-03 20:04:55 +00:00
factories.py shift swap requests model + CRUD endpoints (#2597) 2023-07-21 19:35:19 +00:00
test_amixr_users_in_ical.py World, meet OnCall! 2022-06-03 08:09:47 -06:00
test_check_gaps_and_empty_shifts.py Refactor gaps and empty shift checks (#3785) 2024-01-31 15:25:06 +01:00
test_custom_on_call_shift.py Fix for user appearing in shift rotation when they should not be (#5064) 2024-10-03 20:04:55 +00:00
test_ical_proxy.py Add multiple ical all-day event for testing 2022-11-03 14:36:42 -03:00
test_ical_utils.py feat: update RBAC permissioning to support grafana-irm-app (#5149) 2024-10-10 19:02:21 +00:00
test_notify_about_empty_shifts_in_schedule.py feat: convert schedule.channel (char field) to schedule.slack_channel (foreign key) (#5199) 2024-11-04 14:27:21 -05:00
test_notify_about_gaps_in_schedule.py feat: convert schedule.channel (char field) to schedule.slack_channel (foreign key) (#5199) 2024-11-04 14:27:21 -05:00
test_on_call_schedule.py Fix issue with DST starting/ending causing overlaps/gaps (#5266) 2024-11-20 17:04:25 +00:00
test_quality_score.py Move cache clear to fixtures, fix some deprecation notices (#3269) 2023-11-06 16:52:50 +00:00
test_shift_swap_request.py bump uwsgi to 2.0.26 + Python to 3.12.3 (#4495) 2024-06-10 15:33:37 -04:00