140 lines
4.4 KiB
Python
140 lines
4.4 KiB
Python
"""The sensor tests for the AEMET OpenData platform."""
|
|
|
|
from unittest.mock import patch
|
|
|
|
from homeassistant.components.weather import (
|
|
ATTR_CONDITION_PARTLYCLOUDY,
|
|
ATTR_CONDITION_SNOWY,
|
|
)
|
|
from homeassistant.const import STATE_UNKNOWN
|
|
import homeassistant.util.dt as dt_util
|
|
|
|
from .util import async_init_integration
|
|
|
|
|
|
async def test_aemet_forecast_create_sensors(hass):
|
|
"""Test creation of forecast sensors."""
|
|
|
|
now = dt_util.parse_datetime("2021-01-09 12:00:00+00:00")
|
|
with patch("homeassistant.util.dt.now", return_value=now), patch(
|
|
"homeassistant.util.dt.utcnow", return_value=now
|
|
):
|
|
await async_init_integration(hass)
|
|
|
|
state = hass.states.get("sensor.aemet_daily_forecast_condition")
|
|
assert state.state == ATTR_CONDITION_PARTLYCLOUDY
|
|
|
|
state = hass.states.get("sensor.aemet_daily_forecast_precipitation")
|
|
assert state.state == STATE_UNKNOWN
|
|
|
|
state = hass.states.get("sensor.aemet_daily_forecast_precipitation_probability")
|
|
assert state.state == "30"
|
|
|
|
state = hass.states.get("sensor.aemet_daily_forecast_temperature")
|
|
assert state.state == "4"
|
|
|
|
state = hass.states.get("sensor.aemet_daily_forecast_temperature_low")
|
|
assert state.state == "-4"
|
|
|
|
state = hass.states.get("sensor.aemet_daily_forecast_time")
|
|
assert (
|
|
state.state == dt_util.parse_datetime("2021-01-10 00:00:00+00:00").isoformat()
|
|
)
|
|
|
|
state = hass.states.get("sensor.aemet_daily_forecast_wind_bearing")
|
|
assert state.state == "45.0"
|
|
|
|
state = hass.states.get("sensor.aemet_daily_forecast_wind_speed")
|
|
assert state.state == "20"
|
|
|
|
state = hass.states.get("sensor.aemet_hourly_forecast_condition")
|
|
assert state is None
|
|
|
|
state = hass.states.get("sensor.aemet_hourly_forecast_precipitation")
|
|
assert state is None
|
|
|
|
state = hass.states.get("sensor.aemet_hourly_forecast_precipitation_probability")
|
|
assert state is None
|
|
|
|
state = hass.states.get("sensor.aemet_hourly_forecast_temperature")
|
|
assert state is None
|
|
|
|
state = hass.states.get("sensor.aemet_hourly_forecast_temperature_low")
|
|
assert state is None
|
|
|
|
state = hass.states.get("sensor.aemet_hourly_forecast_time")
|
|
assert state is None
|
|
|
|
state = hass.states.get("sensor.aemet_hourly_forecast_wind_bearing")
|
|
assert state is None
|
|
|
|
state = hass.states.get("sensor.aemet_hourly_forecast_wind_speed")
|
|
assert state is None
|
|
|
|
|
|
async def test_aemet_weather_create_sensors(hass):
|
|
"""Test creation of weather sensors."""
|
|
|
|
now = dt_util.parse_datetime("2021-01-09 12:00:00+00:00")
|
|
with patch("homeassistant.util.dt.now", return_value=now), patch(
|
|
"homeassistant.util.dt.utcnow", return_value=now
|
|
):
|
|
await async_init_integration(hass)
|
|
|
|
state = hass.states.get("sensor.aemet_condition")
|
|
assert state.state == ATTR_CONDITION_SNOWY
|
|
|
|
state = hass.states.get("sensor.aemet_humidity")
|
|
assert state.state == "99.0"
|
|
|
|
state = hass.states.get("sensor.aemet_pressure")
|
|
assert state.state == "1004.4"
|
|
|
|
state = hass.states.get("sensor.aemet_rain")
|
|
assert state.state == "1.8"
|
|
|
|
state = hass.states.get("sensor.aemet_rain_probability")
|
|
assert state.state == "100"
|
|
|
|
state = hass.states.get("sensor.aemet_snow")
|
|
assert state.state == "1.8"
|
|
|
|
state = hass.states.get("sensor.aemet_snow_probability")
|
|
assert state.state == "100"
|
|
|
|
state = hass.states.get("sensor.aemet_station_id")
|
|
assert state.state == "3195"
|
|
|
|
state = hass.states.get("sensor.aemet_station_name")
|
|
assert state.state == "MADRID RETIRO"
|
|
|
|
state = hass.states.get("sensor.aemet_station_timestamp")
|
|
assert state.state == "2021-01-09T12:00:00+00:00"
|
|
|
|
state = hass.states.get("sensor.aemet_storm_probability")
|
|
assert state.state == "0"
|
|
|
|
state = hass.states.get("sensor.aemet_temperature")
|
|
assert state.state == "-0.7"
|
|
|
|
state = hass.states.get("sensor.aemet_temperature_feeling")
|
|
assert state.state == "-4"
|
|
|
|
state = hass.states.get("sensor.aemet_town_id")
|
|
assert state.state == "id28065"
|
|
|
|
state = hass.states.get("sensor.aemet_town_name")
|
|
assert state.state == "Getafe"
|
|
|
|
state = hass.states.get("sensor.aemet_town_timestamp")
|
|
assert state.state == "2021-01-09T11:47:45+00:00"
|
|
|
|
state = hass.states.get("sensor.aemet_wind_bearing")
|
|
assert state.state == "90.0"
|
|
|
|
state = hass.states.get("sensor.aemet_wind_max_speed")
|
|
assert state.state == "24"
|
|
|
|
state = hass.states.get("sensor.aemet_wind_speed")
|
|
assert state.state == "15"
|