mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-07-08 11:56:59 +00:00
Fix calendar recurrence controls
This commit is contained in:
@@ -57,6 +57,7 @@ def _make_event(**overrides):
|
||||
"all_day": False,
|
||||
"is_utc": False,
|
||||
"rrule": "",
|
||||
"recurrence_exdates": "",
|
||||
"calendar": _MOCK_CAL.name,
|
||||
"calendar_id": "cal-001",
|
||||
"color": None,
|
||||
@@ -84,6 +85,23 @@ def test_expand_non_recurring_returns_single():
|
||||
assert r["is_recurrence"] is False
|
||||
|
||||
|
||||
def test_expand_rrule_skips_deleted_occurrence_exdate():
|
||||
cal = _import_calendar_helpers()
|
||||
ev = _make_event(
|
||||
dtstart=datetime(2026, 7, 1, 14, 0),
|
||||
dtend=datetime(2026, 7, 1, 15, 0),
|
||||
rrule="FREQ=WEEKLY;BYDAY=WE",
|
||||
recurrence_exdates='["2026-07-08T14:00"]',
|
||||
)
|
||||
|
||||
results = cal._expand_rrule(ev, datetime(2026, 7, 1), datetime(2026, 7, 22))
|
||||
uids = [r["uid"] for r in results]
|
||||
|
||||
assert "evt-test-001::2026-07-01T14:00" in uids
|
||||
assert "evt-test-001::2026-07-08T14:00" not in uids
|
||||
assert "evt-test-001::2026-07-15T14:00" in uids
|
||||
|
||||
|
||||
def test_expand_yearly_old_dtstart_later_year_single_occurrence():
|
||||
"""Create an old DTSTART + FREQ=YEARLY, query a later year, verify
|
||||
exactly one occurrence is returned.
|
||||
|
||||
Reference in New Issue
Block a user