Fix 500 error when getting calendar events (#88276)
* Fix 500 error when getting calendar event * Add test for calendar dates in wrong order * Update calendar tests to use f stringspull/88605/head
parent
594b7b7e2c
commit
f40b712664
|
@ -386,6 +386,8 @@ class CalendarEventView(http.HomeAssistantView):
|
||||||
return web.Response(status=HTTPStatus.BAD_REQUEST)
|
return web.Response(status=HTTPStatus.BAD_REQUEST)
|
||||||
if start_date is None or end_date is None:
|
if start_date is None or end_date is None:
|
||||||
return web.Response(status=HTTPStatus.BAD_REQUEST)
|
return web.Response(status=HTTPStatus.BAD_REQUEST)
|
||||||
|
if start_date > end_date:
|
||||||
|
return web.Response(status=HTTPStatus.BAD_REQUEST)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
calendar_event_list = await entity.async_get_events(
|
calendar_event_list = await entity.async_get_events(
|
||||||
|
|
|
@ -28,9 +28,7 @@ async def test_events_http_api(
|
||||||
start = dt_util.now()
|
start = dt_util.now()
|
||||||
end = start + timedelta(days=1)
|
end = start + timedelta(days=1)
|
||||||
response = await client.get(
|
response = await client.get(
|
||||||
"/api/calendars/calendar.calendar_1?start={}&end={}".format(
|
f"/api/calendars/calendar.calendar_1?start={start.isoformat()}&end={end.isoformat()}"
|
||||||
start.isoformat(), end.isoformat()
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
assert response.status == HTTPStatus.OK
|
assert response.status == HTTPStatus.OK
|
||||||
events = await response.json()
|
events = await response.json()
|
||||||
|
@ -63,14 +61,27 @@ async def test_events_http_api_error(
|
||||||
side_effect=HomeAssistantError("Failure"),
|
side_effect=HomeAssistantError("Failure"),
|
||||||
):
|
):
|
||||||
response = await client.get(
|
response = await client.get(
|
||||||
"/api/calendars/calendar.calendar_1?start={}&end={}".format(
|
f"/api/calendars/calendar.calendar_1?start={start.isoformat()}&end={end.isoformat()}"
|
||||||
start.isoformat(), end.isoformat()
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
assert response.status == HTTPStatus.INTERNAL_SERVER_ERROR
|
assert response.status == HTTPStatus.INTERNAL_SERVER_ERROR
|
||||||
assert await response.json() == {"message": "Error reading events: Failure"}
|
assert await response.json() == {"message": "Error reading events: Failure"}
|
||||||
|
|
||||||
|
|
||||||
|
async def test_events_http_api_dates_wrong_order(
|
||||||
|
hass: HomeAssistant, hass_client: ClientSessionGenerator
|
||||||
|
) -> None:
|
||||||
|
"""Test the calendar demo view."""
|
||||||
|
await async_setup_component(hass, "calendar", {"calendar": {"platform": "demo"}})
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
client = await hass_client()
|
||||||
|
start = dt_util.now()
|
||||||
|
end = start + timedelta(days=-1)
|
||||||
|
response = await client.get(
|
||||||
|
f"/api/calendars/calendar.calendar_1?start={start.isoformat()}&end={end.isoformat()}"
|
||||||
|
)
|
||||||
|
assert response.status == HTTPStatus.BAD_REQUEST
|
||||||
|
|
||||||
|
|
||||||
async def test_calendars_http_api(
|
async def test_calendars_http_api(
|
||||||
hass: HomeAssistant, hass_client: ClientSessionGenerator
|
hass: HomeAssistant, hass_client: ClientSessionGenerator
|
||||||
) -> None:
|
) -> None:
|
||||||
|
|
Loading…
Reference in New Issue