2021-11-29 13:44:44 +00:00
|
|
|
"""The tests for the demo weather component."""
|
2016-10-25 04:53:03 +00:00
|
|
|
from homeassistant.components import weather
|
|
|
|
from homeassistant.components.weather import (
|
2019-12-09 13:47:53 +00:00
|
|
|
ATTR_FORECAST,
|
|
|
|
ATTR_FORECAST_CONDITION,
|
|
|
|
ATTR_FORECAST_PRECIPITATION,
|
2020-06-17 05:39:33 +00:00
|
|
|
ATTR_FORECAST_PRECIPITATION_PROBABILITY,
|
2019-12-09 13:47:53 +00:00
|
|
|
ATTR_FORECAST_TEMP,
|
|
|
|
ATTR_FORECAST_TEMP_LOW,
|
2019-07-31 19:25:30 +00:00
|
|
|
ATTR_WEATHER_HUMIDITY,
|
|
|
|
ATTR_WEATHER_OZONE,
|
|
|
|
ATTR_WEATHER_PRESSURE,
|
|
|
|
ATTR_WEATHER_TEMPERATURE,
|
|
|
|
ATTR_WEATHER_WIND_BEARING,
|
|
|
|
ATTR_WEATHER_WIND_SPEED,
|
|
|
|
)
|
2021-10-11 21:15:32 +00:00
|
|
|
from homeassistant.const import ATTR_ATTRIBUTION
|
2023-02-08 12:01:44 +00:00
|
|
|
from homeassistant.core import HomeAssistant
|
2020-10-01 07:14:48 +00:00
|
|
|
from homeassistant.setup import async_setup_component
|
2019-12-09 13:47:53 +00:00
|
|
|
from homeassistant.util.unit_system import METRIC_SYSTEM
|
2016-10-25 04:53:03 +00:00
|
|
|
|
|
|
|
|
2023-06-14 14:50:35 +00:00
|
|
|
async def test_attributes(hass: HomeAssistant, disable_platforms) -> None:
|
2020-10-01 07:14:48 +00:00
|
|
|
"""Test weather attributes."""
|
|
|
|
assert await async_setup_component(
|
|
|
|
hass, weather.DOMAIN, {"weather": {"platform": "demo"}}
|
|
|
|
)
|
|
|
|
hass.config.units = METRIC_SYSTEM
|
|
|
|
await hass.async_block_till_done()
|
2016-10-25 04:53:03 +00:00
|
|
|
|
2020-10-01 07:14:48 +00:00
|
|
|
state = hass.states.get("weather.demo_weather_south")
|
|
|
|
assert state is not None
|
2016-10-25 04:53:03 +00:00
|
|
|
|
2020-10-01 07:14:48 +00:00
|
|
|
assert state.state == "sunny"
|
2016-10-25 04:53:03 +00:00
|
|
|
|
2020-10-01 07:14:48 +00:00
|
|
|
data = state.attributes
|
|
|
|
assert data.get(ATTR_WEATHER_TEMPERATURE) == 21.6
|
|
|
|
assert data.get(ATTR_WEATHER_HUMIDITY) == 92
|
|
|
|
assert data.get(ATTR_WEATHER_PRESSURE) == 1099
|
2022-06-23 08:48:30 +00:00
|
|
|
assert data.get(ATTR_WEATHER_WIND_SPEED) == 1.8 # 0.5 m/s -> km/h
|
2020-10-01 07:14:48 +00:00
|
|
|
assert data.get(ATTR_WEATHER_WIND_BEARING) is None
|
|
|
|
assert data.get(ATTR_WEATHER_OZONE) is None
|
2021-10-11 21:15:32 +00:00
|
|
|
assert data.get(ATTR_ATTRIBUTION) == "Powered by Home Assistant"
|
2020-10-01 07:14:48 +00:00
|
|
|
assert data.get(ATTR_FORECAST)[0].get(ATTR_FORECAST_CONDITION) == "rainy"
|
|
|
|
assert data.get(ATTR_FORECAST)[0].get(ATTR_FORECAST_PRECIPITATION) == 1
|
|
|
|
assert data.get(ATTR_FORECAST)[0].get(ATTR_FORECAST_PRECIPITATION_PROBABILITY) == 60
|
|
|
|
assert data.get(ATTR_FORECAST)[0].get(ATTR_FORECAST_TEMP) == 22
|
|
|
|
assert data.get(ATTR_FORECAST)[0].get(ATTR_FORECAST_TEMP_LOW) == 15
|
|
|
|
assert data.get(ATTR_FORECAST)[6].get(ATTR_FORECAST_CONDITION) == "fog"
|
|
|
|
assert data.get(ATTR_FORECAST)[6].get(ATTR_FORECAST_PRECIPITATION) == 0.2
|
|
|
|
assert data.get(ATTR_FORECAST)[6].get(ATTR_FORECAST_TEMP) == 21
|
|
|
|
assert data.get(ATTR_FORECAST)[6].get(ATTR_FORECAST_TEMP_LOW) == 12
|
|
|
|
assert (
|
|
|
|
data.get(ATTR_FORECAST)[6].get(ATTR_FORECAST_PRECIPITATION_PROBABILITY) == 100
|
|
|
|
)
|
|
|
|
assert len(data.get(ATTR_FORECAST)) == 7
|