import pytest from room_cal._utils import CalendarEntry from room_cal.ical_feeds import fetch_calendar from room_cal.store._backend import EventRecord _FIRE_ENTRY = CalendarEntry(name='Fire', url='webcal://cal.4114.us/fire.ics') _HOUSE_ENTRY = CalendarEntry(name='House', caldav='House') def _assert_events(events: list[EventRecord], expected_calendar: str): assert isinstance(events, list), "fetch_calendar should return a list" for e in events: assert isinstance(e, EventRecord), f"Expected EventRecord, got {type(e)}" assert e._meta.get('calendar') == expected_calendar assert e.end >= e.start @pytest.mark.asyncio async def test_fire_http_ical(): events = await fetch_calendar(_FIRE_ENTRY) _assert_events(events, 'Fire') @pytest.mark.asyncio async def test_house_caldav(): events = await fetch_calendar(_HOUSE_ENTRY) _assert_events(events, 'House')