Only show matching caldav events in calendar (#45701)
parent
3f67f9e09c
commit
c1586f97db
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue