diff --git a/radicale/tests/test_expand.py b/radicale/tests/test_expand.py index 2cc4a49f..8eab1ced 100644 --- a/radicale/tests/test_expand.py +++ b/radicale/tests/test_expand.py @@ -512,3 +512,185 @@ permissions: RrWw""") status, event2_calendar_data = responses["/test/event2.ics"]["C:calendar-data"] assert event2_calendar_data.text assert "UID:c6be8b2c-3d72-453c-b698-4f25cdf1569e" in event2_calendar_data.text + + def test_report_getetag_expand_filter(self) -> None: + """Test getetag with time-range filter and expand (example from #1880).""" + self.mkcalendar("/test/") + self.put("/test/event_issue1880_1.ics", get_file_content("event_issue1880_1.ics")) + self.put("/test/event_issue1880_2.ics", get_file_content("event_issue1880_2.ics")) + + request = """ + + + + + + + + + + + + + + + """ + status, responses = self.report("/test", request) + assert status == 207 + assert len(responses) == 2 + assert "D:getetag" in responses["/test/event_issue1880_1.ics"] + assert "D:getetag" in responses["/test/event_issue1880_2.ics"] + + def test_report_getetag_expand_filter_positive1(self) -> None: + """Test getetag with time-range filter and expand (not applicable), should return as matching filter range (example from #1812).""" + self.mkcalendar("/test/") + self.put("/test/event_issue1812_getetag.ics", get_file_content("event_issue1812_getetag.ics")) + + request = """ + + + + + + + + + + + + + + + """ + status, responses = self.report("/test", request) + assert status == 207 + assert len(responses) == 1 + assert "D:getetag" in responses["/test/event_issue1812_getetag.ics"] + + def test_report_getetag_expand_filter_positive2(self) -> None: + """Test getetag with time-range filter and expand, should return as matching filter range (example from #1812).""" + self.mkcalendar("/test/") + self.put("/test/event_issue1812.ics", get_file_content("event_issue1812.ics")) + + request = """ + + + + + + + + + + + + + + + """ + status, responses = self.report("/test", request) + assert status == 207 + assert len(responses) == 1 + assert "D:getetag" in responses["/test/event_issue1812.ics"] + + def test_report_getetag_expand_filter_negative1(self) -> None: + """Test getetag with time-range filter and expand, should not return anything (example from #1812).""" + self.mkcalendar("/test/") + self.put("/test/event_issue1812_getetag.ics", get_file_content("event_issue1812_getetag.ics")) + + request = """ + + + + + + + + + + + + + + + """ + status, responses = self.report("/test", request) + assert status == 207 + assert len(responses) == 0 + + def test_report_getetag_expand_filter_negative2(self) -> None: + """Test getetag with time-range filter and expand, should not return anything (example from #1812).""" + self.mkcalendar("/test/") + self.put("/test/event_issue1812_getetag.ics", get_file_content("event_issue1812_getetag.ics")) + + request = """ + + + + + + + + + + + + + + + + """ + status, responses = self.report("/test", request) + assert status == 207 + assert len(responses) == 0 + + + def test_report_getetag_expand_filter_negative3(self) -> None: + """Test getetag with time-range filter and expand, should not return anything (example from #1812).""" + self.mkcalendar("/test/") + self.put("/test/event_issue1812_getetag.ics", get_file_content("event_issue1812_getetag.ics")) + + request = """ + + + + + + + + + + + + + + + """ + status, responses = self.report("/test", request) + assert status == 207 + assert len(responses) == 0 + + def test_report_getetag_expand_filter_negative4(self) -> None: + """Test getetag with time-range filter and expand, nothing returned as filter is not matching (example from #1812).""" + self.mkcalendar("/test/") + self.put("/test/event_issue1812.ics", get_file_content("event_issue1812.ics")) + + request = """ + + + + + + + + + + + + + + + """ + status, responses = self.report("/test", request) + assert status == 207 + assert len(responses) == 0