caldav: fix event update (#88140)
gitea/passerelle/pipeline/head This commit looks good Details

This commit is contained in:
Yann Weber 2024-03-14 11:13:46 +01:00 committed by Yann Weber
parent 04a9840744
commit 764a1997f9
2 changed files with 14 additions and 2 deletions

View File

@ -202,7 +202,7 @@ class CalDAV(BaseResource):
vevent = vevent[0]
# vevent.update(post_data) do not convert values as expected
for k, v in post_data.items():
vevent[k] = v
vevent.add(k, v)
try:
# do not use ical.save(no_create=True) : no_create fails on some calDAV
ical.save()

View File

@ -337,7 +337,13 @@ def test_caldav_event_update_ok(app, transp, caldav_conn):
evt_path = get_event_path(caldav_conn, username, evt_id)
cal_mock = get_calendar_mock(evt_path, evt_id)
event = {'DTSTART': '2020-02-20', 'DTEND': '2020-03-30', 'SUMMARY': 'foobar', 'TRANSP': transp}
event = {
'DTSTART': '2020-02-20',
'DTEND': '2020-03-30',
'SUMMARY': 'foobar',
'TRANSP': transp,
'RRULE': {'FREQ': 'MONTHLY', 'BYDAY': ['FR']},
}
qs_params = {'username': username, 'event_id': evt_id}
with patch('caldav.Calendar', return_value=cal_mock):
@ -356,6 +362,12 @@ def test_caldav_event_update_ok(app, transp, caldav_conn):
assert str(evt[k]) == 'TRANSPARENT'
else:
assert str(evt[k]) == 'OPAQUE'
elif k == 'RRULE':
assert isinstance(evt[k], icalendar.vRecur)
for rk, rv in event['RRULE'].items():
assert evt[k][rk] == rv
elif k in ('DTSTART', 'DTEND'):
assert evt.decoded(k) == datetime.date.fromisoformat(v)
else:
assert str(evt[k]) == v