Files
homeassistant-core/tests/components/flo/test_sensor.py
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

113 lines
3.7 KiB
Python
Raw Normal View History

"""Test Flo by Moen sensor entities."""
from homeassistant.components.flo.const import DOMAIN as FLO_DOMAIN
from homeassistant.components.sensor import ATTR_STATE_CLASS, SensorStateClass
from homeassistant.const import ATTR_ENTITY_ID, CONF_PASSWORD, CONF_USERNAME
from homeassistant.core import HomeAssistant
from homeassistant.setup import async_setup_component
2022-10-26 10:29:33 +02:00
from homeassistant.util.unit_system import US_CUSTOMARY_SYSTEM
from .common import TEST_PASSWORD, TEST_USER_ID
from tests.test_util.aiohttp import AiohttpClientMocker
async def test_sensors(
hass: HomeAssistant, config_entry, aioclient_mock_fixture
) -> None:
"""Test Flo by Moen sensors."""
2022-10-26 10:29:33 +02:00
hass.config.units = US_CUSTOMARY_SYSTEM
config_entry.add_to_hass(hass)
assert await async_setup_component(
hass, FLO_DOMAIN, {CONF_USERNAME: TEST_USER_ID, CONF_PASSWORD: TEST_PASSWORD}
)
await hass.async_block_till_done()
2021-03-08 06:36:03 -06:00
assert len(hass.data[FLO_DOMAIN][config_entry.entry_id]["devices"]) == 2
2021-03-08 06:36:03 -06:00
# we should have 5 entities for the valve
assert (
hass.states.get("sensor.smart_water_shutoff_current_system_mode").state
== "home"
)
assert (
hass.states.get("sensor.smart_water_shutoff_today_s_water_usage").state == "3.7"
)
assert (
hass.states.get("sensor.smart_water_shutoff_today_s_water_usage").attributes[
ATTR_STATE_CLASS
]
== SensorStateClass.TOTAL_INCREASING
)
assert hass.states.get("sensor.smart_water_shutoff_water_flow_rate").state == "0"
assert (
hass.states.get("sensor.smart_water_shutoff_water_flow_rate").attributes[
ATTR_STATE_CLASS
]
== SensorStateClass.MEASUREMENT
)
assert hass.states.get("sensor.smart_water_shutoff_water_pressure").state == "54.2"
assert (
hass.states.get("sensor.smart_water_shutoff_water_pressure").attributes[
ATTR_STATE_CLASS
]
== SensorStateClass.MEASUREMENT
)
2022-10-26 10:29:33 +02:00
assert hass.states.get("sensor.smart_water_shutoff_water_temperature").state == "70"
assert (
hass.states.get("sensor.smart_water_shutoff_water_temperature").attributes[
ATTR_STATE_CLASS
]
== SensorStateClass.MEASUREMENT
)
2021-03-08 06:36:03 -06:00
# and 3 entities for the detector
2022-10-26 10:29:33 +02:00
assert hass.states.get("sensor.kitchen_sink_temperature").state == "61"
assert (
hass.states.get("sensor.kitchen_sink_temperature").attributes[ATTR_STATE_CLASS]
== SensorStateClass.MEASUREMENT
)
assert hass.states.get("sensor.kitchen_sink_humidity").state == "43"
assert (
hass.states.get("sensor.kitchen_sink_humidity").attributes[ATTR_STATE_CLASS]
== SensorStateClass.MEASUREMENT
)
assert hass.states.get("sensor.kitchen_sink_battery").state == "100"
assert (
hass.states.get("sensor.kitchen_sink_battery").attributes[ATTR_STATE_CLASS]
== SensorStateClass.MEASUREMENT
)
async def test_manual_update_entity(
hass: HomeAssistant,
config_entry,
aioclient_mock_fixture,
aioclient_mock: AiohttpClientMocker,
) -> None:
"""Test manual update entity via service homeasasistant/update_entity."""
config_entry.add_to_hass(hass)
assert await async_setup_component(
hass, FLO_DOMAIN, {CONF_USERNAME: TEST_USER_ID, CONF_PASSWORD: TEST_PASSWORD}
)
await hass.async_block_till_done()
2021-03-08 06:36:03 -06:00
assert len(hass.data[FLO_DOMAIN][config_entry.entry_id]["devices"]) == 2
await async_setup_component(hass, "homeassistant", {})
call_count = aioclient_mock.call_count
await hass.services.async_call(
"homeassistant",
"update_entity",
{ATTR_ENTITY_ID: ["sensor.smart_water_shutoff_current_system_mode"]},
blocking=True,
)
2021-11-29 20:00:39 -05:00
assert aioclient_mock.call_count == call_count + 3