"""Unit tests for the Todoist calendar platform.""" from datetime import datetime from homeassistant.components.todoist.calendar import _parse_due_date from homeassistant.components.todoist.types import DueDate from homeassistant.util import dt def test_parse_due_date_invalid(): """Test None is returned if the due date can't be parsed.""" data: DueDate = { "date": "invalid", "is_recurring": False, "lang": "en", "string": "", "timezone": None, } assert _parse_due_date(data, timezone_offset=-8) is None def test_parse_due_date_with_no_time_data(): """Test due date is parsed correctly when it has no time data.""" data: DueDate = { "date": "2022-02-02", "is_recurring": False, "lang": "en", "string": "Feb 2 2:00 PM", "timezone": None, } actual = _parse_due_date(data, timezone_offset=-8) assert datetime(2022, 2, 2, 8, 0, 0, tzinfo=dt.UTC) == actual def test_parse_due_date_without_timezone_uses_offset(): """Test due date uses user local timezone offset when it has no timezone.""" data: DueDate = { "date": "2022-02-02T14:00:00", "is_recurring": False, "lang": "en", "string": "Feb 2 2:00 PM", "timezone": None, } actual = _parse_due_date(data, timezone_offset=-8) assert datetime(2022, 2, 2, 22, 0, 0, tzinfo=dt.UTC) == actual