core/tests/components/dexcom/test_sensor.py

56 lines
2.2 KiB
Python

"""The sensor tests for the griddy platform."""
from unittest.mock import patch
from pydexcom import SessionError
from homeassistant.const import STATE_UNAVAILABLE, STATE_UNKNOWN
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_component import async_update_entity
from . import GLUCOSE_READING, init_integration
async def test_sensors(hass: HomeAssistant) -> None:
"""Test we get sensor data."""
await init_integration(hass)
test_username_glucose_value = hass.states.get("sensor.test_username_glucose_value")
assert test_username_glucose_value.state == str(GLUCOSE_READING.value)
test_username_glucose_trend = hass.states.get("sensor.test_username_glucose_trend")
assert test_username_glucose_trend.state == GLUCOSE_READING.trend_description
async def test_sensors_unknown(hass: HomeAssistant) -> None:
"""Test we handle sensor state unknown."""
await init_integration(hass)
with patch(
"homeassistant.components.dexcom.Dexcom.get_current_glucose_reading",
return_value=None,
):
await async_update_entity(hass, "sensor.test_username_glucose_value")
await async_update_entity(hass, "sensor.test_username_glucose_trend")
test_username_glucose_value = hass.states.get("sensor.test_username_glucose_value")
assert test_username_glucose_value.state == STATE_UNKNOWN
test_username_glucose_trend = hass.states.get("sensor.test_username_glucose_trend")
assert test_username_glucose_trend.state == STATE_UNKNOWN
async def test_sensors_update_failed(hass: HomeAssistant) -> None:
"""Test we handle sensor update failed."""
await init_integration(hass)
with patch(
"homeassistant.components.dexcom.Dexcom.get_current_glucose_reading",
side_effect=SessionError,
):
await async_update_entity(hass, "sensor.test_username_glucose_value")
await async_update_entity(hass, "sensor.test_username_glucose_trend")
test_username_glucose_value = hass.states.get("sensor.test_username_glucose_value")
assert test_username_glucose_value.state == STATE_UNAVAILABLE
test_username_glucose_trend = hass.states.get("sensor.test_username_glucose_trend")
assert test_username_glucose_trend.state == STATE_UNAVAILABLE