Add tests for LitterRobot sensors (#78638)

This commit is contained in:
Robert Hillis 2022-09-19 00:12:38 -04:00 committed by GitHub
parent 9655f30146
commit aa0cbf0afe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 191 additions and 9 deletions

View file

@ -2,12 +2,13 @@
from unittest.mock import MagicMock
from homeassistant.components.sensor import DOMAIN as PLATFORM_DOMAIN, SensorDeviceClass
from homeassistant.const import PERCENTAGE, STATE_UNKNOWN
from homeassistant.const import MASS_POUNDS, PERCENTAGE, STATE_UNKNOWN
from homeassistant.core import HomeAssistant
from .conftest import setup_integration
WASTE_DRAWER_ENTITY_ID = "sensor.test_waste_drawer"
SLEEP_END_TIME_ENTITY_ID = "sensor.test_sleep_mode_end_time"
SLEEP_START_TIME_ENTITY_ID = "sensor.test_sleep_mode_start_time"
@ -36,6 +37,10 @@ async def test_sleep_time_sensor_with_sleep_disabled(
assert sensor.state == STATE_UNKNOWN
assert sensor.attributes["device_class"] == SensorDeviceClass.TIMESTAMP
sensor = hass.states.get(SLEEP_END_TIME_ENTITY_ID)
assert sensor.state == STATE_UNKNOWN
assert sensor.attributes["device_class"] == SensorDeviceClass.TIMESTAMP
async def test_gauge_icon() -> None:
"""Test icon generator for gauge sensor."""
@ -59,3 +64,39 @@ async def test_gauge_icon() -> None:
assert icon_for_gauge_level(40, 10) == GAUGE_LOW
assert icon_for_gauge_level(80, 10) == GAUGE
assert icon_for_gauge_level(100, 10) == GAUGE_FULL
async def test_litter_robot_sensor(
hass: HomeAssistant, mock_account_with_litterrobot_4: MagicMock
) -> None:
"""Tests Litter-Robot sensors."""
await setup_integration(hass, mock_account_with_litterrobot_4, PLATFORM_DOMAIN)
sensor = hass.states.get(SLEEP_START_TIME_ENTITY_ID)
assert sensor.state == "2022-09-19T04:00:00+00:00"
assert sensor.attributes["device_class"] == SensorDeviceClass.TIMESTAMP
sensor = hass.states.get(SLEEP_END_TIME_ENTITY_ID)
assert sensor.state == "2022-09-16T07:00:00+00:00"
assert sensor.attributes["device_class"] == SensorDeviceClass.TIMESTAMP
sensor = hass.states.get("sensor.test_last_seen")
assert sensor.state == "2022-09-17T12:06:37+00:00"
assert sensor.attributes["device_class"] == SensorDeviceClass.TIMESTAMP
sensor = hass.states.get("sensor.test_status_code")
assert sensor.state == "dfs"
assert sensor.attributes["device_class"] == "litterrobot__status_code"
sensor = hass.states.get("sensor.test_litter_level")
assert sensor.state == "70.0"
assert sensor.attributes["unit_of_measurement"] == PERCENTAGE
sensor = hass.states.get("sensor.test_pet_weight")
assert sensor.state == "12.0"
assert sensor.attributes["unit_of_measurement"] == MASS_POUNDS
async def test_feeder_robot_sensor(
hass: HomeAssistant, mock_account_with_feederrobot: MagicMock
) -> None:
"""Tests Feeder-Robot sensors."""
await setup_integration(hass, mock_account_with_feederrobot, PLATFORM_DOMAIN)
sensor = hass.states.get("sensor.test_food_level")
assert sensor.state == "20"
assert sensor.attributes["unit_of_measurement"] == PERCENTAGE