Upgrade caldav to 1.0.1 (#85536)
Upgrade caldav (fix #40127) date_search was deprecated in favour of search which also implements client-side recurring events expansion
This commit is contained in:
parent
66c3115b26
commit
70a9c8f8aa
5 changed files with 20 additions and 8 deletions
|
@ -2,6 +2,7 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from datetime import date, datetime, timedelta
|
from datetime import date, datetime, timedelta
|
||||||
|
from functools import partial
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
@ -172,7 +173,13 @@ class WebDavCalendarData:
|
||||||
"""Get all events in a specific time frame."""
|
"""Get all events in a specific time frame."""
|
||||||
# Get event list from the current calendar
|
# Get event list from the current calendar
|
||||||
vevent_list = await hass.async_add_executor_job(
|
vevent_list = await hass.async_add_executor_job(
|
||||||
self.calendar.date_search, start_date, end_date
|
partial(
|
||||||
|
self.calendar.search,
|
||||||
|
start=start_date,
|
||||||
|
end=end_date,
|
||||||
|
event=True,
|
||||||
|
expand=True,
|
||||||
|
)
|
||||||
)
|
)
|
||||||
event_list = []
|
event_list = []
|
||||||
for event in vevent_list:
|
for event in vevent_list:
|
||||||
|
@ -202,7 +209,12 @@ class WebDavCalendarData:
|
||||||
|
|
||||||
# We have to retrieve the results for the whole day as the server
|
# We have to retrieve the results for the whole day as the server
|
||||||
# won't return events that have already started
|
# won't return events that have already started
|
||||||
results = self.calendar.date_search(start_of_today, start_of_tomorrow)
|
results = self.calendar.search(
|
||||||
|
start=start_of_today,
|
||||||
|
end=start_of_tomorrow,
|
||||||
|
event=True,
|
||||||
|
expand=True,
|
||||||
|
)
|
||||||
|
|
||||||
# Create new events for each recurrence of an event that happens today.
|
# Create new events for each recurrence of an event that happens today.
|
||||||
# For recurring events, some servers return the original event with recurrence rules
|
# For recurring events, some servers return the original event with recurrence rules
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"domain": "caldav",
|
"domain": "caldav",
|
||||||
"name": "CalDAV",
|
"name": "CalDAV",
|
||||||
"documentation": "https://www.home-assistant.io/integrations/caldav",
|
"documentation": "https://www.home-assistant.io/integrations/caldav",
|
||||||
"requirements": ["caldav==0.9.1"],
|
"requirements": ["caldav==1.0.1"],
|
||||||
"codeowners": [],
|
"codeowners": [],
|
||||||
"iot_class": "cloud_polling",
|
"iot_class": "cloud_polling",
|
||||||
"loggers": ["caldav", "vobject"]
|
"loggers": ["caldav", "vobject"]
|
||||||
|
|
|
@ -507,7 +507,7 @@ btsmarthub_devicelist==0.2.3
|
||||||
buienradar==1.0.5
|
buienradar==1.0.5
|
||||||
|
|
||||||
# homeassistant.components.caldav
|
# homeassistant.components.caldav
|
||||||
caldav==0.9.1
|
caldav==1.0.1
|
||||||
|
|
||||||
# homeassistant.components.circuit
|
# homeassistant.components.circuit
|
||||||
circuit-webhook==1.0.1
|
circuit-webhook==1.0.1
|
||||||
|
|
|
@ -408,7 +408,7 @@ bthome-ble==2.5.0
|
||||||
buienradar==1.0.5
|
buienradar==1.0.5
|
||||||
|
|
||||||
# homeassistant.components.caldav
|
# homeassistant.components.caldav
|
||||||
caldav==0.9.1
|
caldav==1.0.1
|
||||||
|
|
||||||
# homeassistant.components.co2signal
|
# homeassistant.components.co2signal
|
||||||
co2signal==0.4.2
|
co2signal==0.4.2
|
||||||
|
|
|
@ -349,12 +349,12 @@ def _mocked_dav_client(*names, calendars=None):
|
||||||
|
|
||||||
|
|
||||||
def _mock_calendar(name):
|
def _mock_calendar(name):
|
||||||
|
calendar = Mock()
|
||||||
events = []
|
events = []
|
||||||
for idx, event in enumerate(EVENTS):
|
for idx, event in enumerate(EVENTS):
|
||||||
events.append(Event(None, "%d.ics" % idx, event, None, str(idx)))
|
events.append(Event(None, "%d.ics" % idx, event, calendar, str(idx)))
|
||||||
|
|
||||||
calendar = Mock()
|
calendar.search = MagicMock(return_value=events)
|
||||||
calendar.date_search = MagicMock(return_value=events)
|
|
||||||
calendar.name = name
|
calendar.name = name
|
||||||
return calendar
|
return calendar
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue