core/tests/components/twentemilieu/test_calendar.py

60 lines
1.8 KiB
Python

"""Tests for the Twente Milieu calendar."""
from http import HTTPStatus
import pytest
from syrupy.assertion import SnapshotAssertion
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr, entity_registry as er
from tests.typing import ClientSessionGenerator
pytestmark = pytest.mark.usefixtures("init_integration")
@pytest.mark.freeze_time("2022-01-05 00:00:00+00:00")
async def test_waste_pickup_calendar(
hass: HomeAssistant,
device_registry: dr.DeviceRegistry,
entity_registry: er.EntityRegistry,
snapshot: SnapshotAssertion,
) -> None:
"""Test the Twente Milieu waste pickup calendar."""
assert (state := hass.states.get("calendar.twente_milieu"))
assert state == snapshot
assert (entity_entry := entity_registry.async_get(state.entity_id))
assert entity_entry == snapshot
assert entity_entry.device_id
assert (device_entry := device_registry.async_get(entity_entry.device_id))
assert device_entry == snapshot
async def test_api_calendar(
hass_client: ClientSessionGenerator,
snapshot: SnapshotAssertion,
) -> None:
"""Test the API returns the calendar."""
client = await hass_client()
response = await client.get("/api/calendars")
assert response.status == HTTPStatus.OK
data = await response.json()
assert data == snapshot
async def test_api_events(
hass_client: ClientSessionGenerator,
snapshot: SnapshotAssertion,
) -> None:
"""Test the Twente Milieu calendar view."""
client = await hass_client()
response = await client.get(
"/api/calendars/calendar.twente_milieu?start=2022-01-05&end=2022-01-06"
)
assert response.status == HTTPStatus.OK
events = await response.json()
assert len(events) == 1
assert events == snapshot