Bump ical to 4.5.0 (#89744)

This commit is contained in:
Allen Porter 2023-03-15 10:06:46 -07:00 committed by GitHub
parent 6b768b90b4
commit b588b8b215
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 42 additions and 15 deletions

View File

@ -9,7 +9,7 @@ from typing import Any
from ical.calendar import Calendar from ical.calendar import Calendar
from ical.calendar_stream import IcsCalendarStream from ical.calendar_stream import IcsCalendarStream
from ical.event import Event from ical.event import Event
from ical.store import EventStore from ical.store import EventStore, EventStoreError
from ical.types import Range, Recur from ical.types import Range, Recur
from pydantic import ValidationError from pydantic import ValidationError
import voluptuous as vol import voluptuous as vol
@ -24,6 +24,7 @@ from homeassistant.components.calendar import (
) )
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util import dt as dt_util from homeassistant.util import dt as dt_util
@ -119,11 +120,14 @@ class LocalCalendarEntity(CalendarEntity):
range_value: Range = Range.NONE range_value: Range = Range.NONE
if recurrence_range == Range.THIS_AND_FUTURE: if recurrence_range == Range.THIS_AND_FUTURE:
range_value = Range.THIS_AND_FUTURE range_value = Range.THIS_AND_FUTURE
try:
EventStore(self._calendar).delete( EventStore(self._calendar).delete(
uid, uid,
recurrence_id=recurrence_id, recurrence_id=recurrence_id,
recurrence_range=range_value, recurrence_range=range_value,
) )
except EventStoreError as err:
raise HomeAssistantError("Error while deleting event: {err}") from err
await self._async_store() await self._async_store()
await self.async_update_ha_state(force_refresh=True) await self.async_update_ha_state(force_refresh=True)
@ -139,12 +143,15 @@ class LocalCalendarEntity(CalendarEntity):
range_value: Range = Range.NONE range_value: Range = Range.NONE
if recurrence_range == Range.THIS_AND_FUTURE: if recurrence_range == Range.THIS_AND_FUTURE:
range_value = Range.THIS_AND_FUTURE range_value = Range.THIS_AND_FUTURE
try:
EventStore(self._calendar).edit( EventStore(self._calendar).edit(
uid, uid,
new_event, new_event,
recurrence_id=recurrence_id, recurrence_id=recurrence_id,
recurrence_range=range_value, recurrence_range=range_value,
) )
except EventStoreError as err:
raise HomeAssistantError("Error while updating event: {err}") from err
await self._async_store() await self._async_store()
await self.async_update_ha_state(force_refresh=True) await self.async_update_ha_state(force_refresh=True)

View File

@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/local_calendar", "documentation": "https://www.home-assistant.io/integrations/local_calendar",
"iot_class": "local_polling", "iot_class": "local_polling",
"loggers": ["ical"], "loggers": ["ical"],
"requirements": ["ical==4.2.9"] "requirements": ["ical==4.5.0"]
} }

View File

@ -952,7 +952,7 @@ ibm-watson==5.2.2
ibmiotf==0.3.4 ibmiotf==0.3.4
# homeassistant.components.local_calendar # homeassistant.components.local_calendar
ical==4.2.9 ical==4.5.0
# homeassistant.components.ping # homeassistant.components.ping
icmplib==3.0 icmplib==3.0

View File

@ -723,7 +723,7 @@ iaqualink==0.5.0
ibeacon_ble==1.0.1 ibeacon_ble==1.0.1
# homeassistant.components.local_calendar # homeassistant.components.local_calendar
ical==4.2.9 ical==4.5.0
# homeassistant.components.ping # homeassistant.components.ping
icmplib==3.0 icmplib==3.0

View File

@ -829,6 +829,26 @@ async def test_update_invalid_event_id(
assert resp["error"].get("code") == "failed" assert resp["error"].get("code") == "failed"
async def test_delete_invalid_event_id(
ws_client: ClientFixture,
setup_integration: None,
hass: HomeAssistant,
) -> None:
"""Test deleting an event with an invalid event uid."""
client = await ws_client()
resp = await client.cmd(
"delete",
{
"entity_id": TEST_ENTITY,
"uid": "uid-does-not-exist",
},
)
assert resp
assert not resp.get("success")
assert "error" in resp
assert resp["error"].get("code") == "failed"
@pytest.mark.parametrize( @pytest.mark.parametrize(
("start_date_time", "end_date_time"), ("start_date_time", "end_date_time"),
[ [