core/tests/components/hydrawise/test_sensor.py

47 lines
1.4 KiB
Python

"""Test Hydrawise sensor."""
from collections.abc import Awaitable, Callable
from freezegun.api import FrozenDateTimeFactory
from pydrawise.schema import Zone
import pytest
from homeassistant.core import HomeAssistant
from tests.common import MockConfigEntry
@pytest.mark.freeze_time("2023-10-01 00:00:00+00:00")
async def test_states(
hass: HomeAssistant,
mock_added_config_entry: MockConfigEntry,
freezer: FrozenDateTimeFactory,
) -> None:
"""Test sensor states."""
watering_time1 = hass.states.get("sensor.zone_one_watering_time")
assert watering_time1 is not None
assert watering_time1.state == "0"
watering_time2 = hass.states.get("sensor.zone_two_watering_time")
assert watering_time2 is not None
assert watering_time2.state == "29"
next_cycle = hass.states.get("sensor.zone_one_next_cycle")
assert next_cycle is not None
assert next_cycle.state == "2023-10-04T19:49:57+00:00"
@pytest.mark.freeze_time("2023-10-01 00:00:00+00:00")
async def test_suspended_state(
hass: HomeAssistant,
zones: list[Zone],
mock_add_config_entry: Callable[[], Awaitable[MockConfigEntry]],
) -> None:
"""Test sensor states."""
zones[0].scheduled_runs.next_run = None
await mock_add_config_entry()
next_cycle = hass.states.get("sensor.zone_one_next_cycle")
assert next_cycle is not None
assert next_cycle.state == "9999-12-31T23:59:59+00:00"