Only show matching caldav events in calendar (#45701)

pull/45704/head
Pieter Mulder 2021-01-29 15:25:01 +01:00 committed by GitHub
parent 3f67f9e09c
commit c1586f97db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 0 deletions

View File

@ -173,6 +173,8 @@ class WebDavCalendarData:
event_list = []
for event in vevent_list:
vevent = event.instance.vevent
if not self.is_matching(vevent, self.search):
continue
uid = None
if hasattr(vevent, "uid"):
uid = vevent.uid.value

View File

@ -774,3 +774,32 @@ async def test_event_rrule_hourly_ended(mock_now, hass, calendar):
state = hass.states.get("calendar.private")
assert state.name == calendar.name
assert state.state == STATE_OFF
async def test_get_events(hass, calendar):
"""Test that all events are returned on API."""
assert await async_setup_component(hass, "calendar", {"calendar": CALDAV_CONFIG})
await hass.async_block_till_done()
entity = hass.data["calendar"].get_entity("calendar.private")
events = await entity.async_get_events(
hass, datetime.date(2015, 11, 27), datetime.date(2015, 11, 28)
)
assert len(events) == 14
async def test_get_events_custom_calendars(hass, calendar):
"""Test that only searched events are returned on API."""
config = dict(CALDAV_CONFIG)
config["custom_calendars"] = [
{"name": "Private", "calendar": "Private", "search": "This is a normal event"}
]
assert await async_setup_component(hass, "calendar", {"calendar": config})
await hass.async_block_till_done()
entity = hass.data["calendar"].get_entity("calendar.private_private")
events = await entity.async_get_events(
hass, datetime.date(2015, 11, 27), datetime.date(2015, 11, 28)
)
assert len(events) == 1
assert events[0]["summary"] == "This is a normal event"