From 23b16da08d4858199154a36045dc105006e8da45 Mon Sep 17 00:00:00 2001 From: Andrey Khrolenok Date: Wed, 8 May 2024 23:58:59 +0300 Subject: [PATCH] Add test_async_update_forecast_fail --- tests/test_binary_sensor.py | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/tests/test_binary_sensor.py b/tests/test_binary_sensor.py index 13e9603..8421596 100644 --- a/tests/test_binary_sensor.py +++ b/tests/test_binary_sensor.py @@ -31,7 +31,7 @@ CONF_PLATFORM, UnitOfTemperature, ) -from homeassistant.core import HomeAssistant, State +from homeassistant.core import HomeAssistant, State, SupportsResponse from homeassistant.exceptions import HomeAssistantError from homeassistant.util import dt as dt_util @@ -184,3 +184,35 @@ async def test_async_update(hass: HomeAssistant, default_sensor): assert default_sensor.available assert default_sensor.is_on is False assert default_sensor.icon == ICON_SUMMER + + +async def test_async_update_forecast_fail(hass: HomeAssistant, default_sensor): + """Test sensor update on forecast fail.""" + hass.states._states[MOCK_WEATHER_ENTITY] = State(MOCK_WEATHER_ENTITY, None) + + with raises(HomeAssistantError): + await default_sensor.async_update() + + hass.states.async_set(MOCK_WEATHER_ENTITY, "State") + + with raises(HomeAssistantError): + await default_sensor.async_update() + + async_mock_service( + hass, + CONF_WEATHER, + SERVICE_GET_FORECASTS, + supports_response=SupportsResponse.OPTIONAL, + ) + + hass.states.async_set( + MOCK_WEATHER_ENTITY, + "State", + attributes={ + ATTR_WEATHER_TEMPERATURE: -1, + ATTR_SUPPORTED_FEATURES: WeatherEntityFeature.FORECAST_DAILY, + }, + ) + + with raises(HomeAssistantError): + await default_sensor.async_update()