-
-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
reproduce issue 151 #153
reproduce issue 151 #153
Conversation
@niccokunzmann There is 1 event expected from this test:
|
In 946e894, I checked... $ tox -e py39 -- test/test_issue_151_macos_linux_difference.py::test_count_events_from_issue[Calendars-use_pytz] test/test_issue_151_macos_linux_difference.py::test_check_event_count_for_that_day[ReversedCalendars-use_zoneinfo]
py39: commands[0]> pytest --basetemp=/home/nicco/recurring-ical-events/.tox/py39/tmp 'test/test_issue_151_macos_linux_difference.py::test_count_events_from_issue[Calendars-use_pytz]' 'test/test_issue_151_macos_linux_difference.py::test_check_event_count_for_that_day[ReversedCalendars-use_zoneinfo]'
============================================================== test session starts ===============================================================
platform linux -- Python 3.9.18, pytest-8.2.2, pluggy-1.5.0
cachedir: .tox/py39/.pytest_cache
rootdir: /home/nicco/recurring-ical-events
configfile: pyproject.toml
plugins: cov-5.0.0
collected 2 items
test/test_issue_151_macos_linux_difference.py FF [100%]
==================================================================== FAILURES ====================================================================
________________________________________________ test_count_events_from_issue[Calendars-use_pytz] ________________________________________________
calendars = Calendars(use_pytz)
def test_count_events_from_issue(calendars):
"""Avents were omitted through version upgrade from 2.2.2 to 2.2.3."""
start_time = datetime.fromtimestamp(1722564000, timezone.utc)
end_time = datetime.fromtimestamp(1722567600, timezone.utc)
print(f"from {start_time.timestamp()} to {end_time.timestamp()}")
events = calendars.issue_151_macos_linux_difference.between(start_time, end_time)
for event in events:
print(event["UID"], event["DTSTART"], event["SUMMARY"])
> assert len(events) == 1
E assert 0 == 1
E + where 0 = len([])
test/test_issue_151_macos_linux_difference.py:18: AssertionError
-------------------------------------------------------------- Captured stdout call --------------------------------------------------------------
from 1722564000.0 to 1722567600.0
<recurring_ical_events.RepeatedEvent object at 0x75baf718f970>
other 2014-08-01 None <class 'datetime.date'>
added event!
remove_because_not_in_span 1 [VEVENT({'DTSTART': vDDDTypes(2014-08-01 18:30:00-07:00, Parameters({'TZID': 'America/Los_Angeles'})), 'DTEND': vDDDTypes(2014-08-01 19:30:00-07:00, Parameters({'TZID': 'America/Los_Angeles'})), 'DTSTAMP': vDDDTypes(2024-08-07 00:03:26+00:00, Parameters({})), 'UID': vText(b'aogpprh4bolu8ckmop49ca6404@google.com'), 'RECURRENCE-ID': vDDDTypes(2014-08-01 19:00:00-07:00, Parameters({'TZID': 'America/Los_Angeles'})), 'CREATED': vDDDTypes(2014-03-31 19:26:50+00:00, Parameters({})), 'LAST-MODIFIED': vDDDTypes(2015-07-31 02:23:26+00:00, Parameters({})), 'SEQUENCE': 3, 'STATUS': vText(b'CONFIRMED'), 'SUMMARY': vText(b'Vespers for the Feast of St. Joseph'), 'TRANSP': vText(b'OPAQUE')}, VALARM({'ACTION': vText(b'NONE'), 'TRIGGER': vDDDTypes(1976-04-01 00:55:45+00:00, Parameters({'VALUE': 'DATE-TIME'})), 'X-WR-ALARMUID': vText(b'8744D632-C9F8-483C-B095-590E0A3D2E39'), 'UID': vText(b'8744D632-C9F8-483C-B095-590E0A3D2E39')}))]
______________________________________ test_check_event_count_for_that_day[ReversedCalendars-use_zoneinfo] _______________________________________
calendars = ReversedCalendars(use_zoneinfo)
def test_check_event_count_for_that_day(calendars):
"""Avents were omitted through version upgrade from 2.2.2 to 2.2.3."""
events = calendars.issue_151_macos_linux_difference.at("20140801")
for event in events:
print(event["UID"], event["DTSTART"], event["SUMMARY"], event["DTSTART"].dt.timestamp())
> assert len(events) == 1 and False
E AssertionError: assert (1 == 1 and False)
E + where 1 = len([VEVENT({'DTSTART': vDDDTypes(2014-08-01 18:30:00-07:00, Parameters({'TZID': 'America/Los_Angeles'})), 'DTEND': vDDDTy...WR-ALARMUID': vText(b'8744D632-C9F8-483C-B095-590E0A3D2E39'), 'UID': vText(b'8744D632-C9F8-483C-B095-590E0A3D2E39')}))])
test/test_issue_151_macos_linux_difference.py:26: AssertionError
-------------------------------------------------------------- Captured stdout call --------------------------------------------------------------
<recurring_ical_events.RepeatedEvent object at 0x75baf719d850>
other 2014-08-01 None <class 'datetime.date'>
added event!
remove_because_not_in_span 0 []
aogpprh4bolu8ckmop49ca6404@google.com vDDDTypes(2014-08-01 18:30:00-07:00, Parameters({'TZID': 'America/Los_Angeles'})) Vespers for the Feast of St. Joseph 1406943000.0
============================================================ short test summary info =============================================================
FAILED test/test_issue_151_macos_linux_difference.py::test_count_events_from_issue[Calendars-use_pytz] - assert 0 == 1
FAILED test/test_issue_151_macos_linux_difference.py::test_check_event_count_for_that_day[ReversedCalendars-use_zoneinfo] - AssertionError: assert (1 == 1 and False)
=============================================================== 2 failed in 0.11s ================================================================
py39: exit 1 (0.33 seconds) /home/nicco/recurring-ical-events> pytest --basetemp=/home/nicco/recurring-ical-events/.tox/py39/tmp 'test/test_issue_151_macos_linux_difference.py::test_count_events_from_issue[Calendars-use_pytz]' 'test/test_issue_151_macos_linux_difference.py::test_check_event_count_for_that_day[ReversedCalendars-use_zoneinfo]' pid=53075
py39: FAIL code 1 (0.37=setup[0.04]+cmd[0.33] seconds)
evaluation failed :( (0.44 seconds) The event is present on that day but absent in the window that you ask for... The event is listed but as not within the span, see this line: |
This is weird ... I go the error down to this:
The last line evaluates to False although it is clearly True: 19:00 is before 19:30
in 0d64f85 |
Uh, the difference is 2024 and 2014 The issue lies somewhere else then... The yearly rrule does not seem to include the event then... |
Ok... I found it! What happened: In the last issue we fixed, we made sure that edits are not ignored. In this issue, we face the problem that edits of an event occurrence within a sequence now override the base event and its repetition rules. Thanks for reporting this! This can be solved and best also includes a refactoring of where recurrences are calculated. |
My pleasure! Thanks for getting to the bottom of this |
fix rrule calculation
So, I did a big refactoring that was due. This breaks a little the promised interface. Thus, the major version number will be increased. |
This PR tries to reproduce Issue #151.