parent
27032c1780
commit
be8f14167f
|
@ -21,12 +21,14 @@ from homeassistant.components.weather import (
|
|||
ATTR_FORECAST_NATIVE_WIND_SPEED,
|
||||
ATTR_FORECAST_PRECIPITATION_PROBABILITY,
|
||||
ATTR_FORECAST_TIME,
|
||||
ATTR_FORECAST_UV_INDEX,
|
||||
ATTR_FORECAST_WIND_BEARING,
|
||||
ATTR_WEATHER_CLOUD_COVERAGE,
|
||||
ATTR_WEATHER_DEW_POINT,
|
||||
ATTR_WEATHER_HUMIDITY,
|
||||
ATTR_WEATHER_PRESSURE,
|
||||
ATTR_WEATHER_TEMPERATURE,
|
||||
ATTR_WEATHER_UV_INDEX,
|
||||
ATTR_WEATHER_VISIBILITY,
|
||||
ATTR_WEATHER_WIND_BEARING,
|
||||
ATTR_WEATHER_WIND_GUST_SPEED,
|
||||
|
@ -190,6 +192,7 @@ FORECAST_MAP = {
|
|||
ATTR_FORECAST_NATIVE_WIND_GUST_SPEED: "wind_gust",
|
||||
ATTR_FORECAST_CLOUD_COVERAGE: "cloudiness",
|
||||
ATTR_FORECAST_HUMIDITY: "humidity",
|
||||
ATTR_FORECAST_UV_INDEX: "uv_index",
|
||||
}
|
||||
|
||||
ATTR_MAP = {
|
||||
|
@ -202,4 +205,5 @@ ATTR_MAP = {
|
|||
ATTR_WEATHER_WIND_GUST_SPEED: "wind_gust",
|
||||
ATTR_WEATHER_CLOUD_COVERAGE: "cloudiness",
|
||||
ATTR_WEATHER_DEW_POINT: "dew_point",
|
||||
ATTR_WEATHER_UV_INDEX: "uv_index",
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ from homeassistant.components.weather import (
|
|||
ATTR_WEATHER_HUMIDITY,
|
||||
ATTR_WEATHER_PRESSURE,
|
||||
ATTR_WEATHER_TEMPERATURE,
|
||||
ATTR_WEATHER_UV_INDEX,
|
||||
ATTR_WEATHER_WIND_BEARING,
|
||||
ATTR_WEATHER_WIND_GUST_SPEED,
|
||||
ATTR_WEATHER_WIND_SPEED,
|
||||
|
@ -208,6 +209,13 @@ class MetWeather(SingleCoordinatorWeatherEntity[MetDataUpdateCoordinator]):
|
|||
ATTR_MAP[ATTR_WEATHER_DEW_POINT]
|
||||
)
|
||||
|
||||
@property
|
||||
def uv_index(self) -> float | None:
|
||||
"""Return the uv index."""
|
||||
return self.coordinator.data.current_weather_data.get(
|
||||
ATTR_MAP[ATTR_WEATHER_UV_INDEX]
|
||||
)
|
||||
|
||||
def _forecast(self, hourly: bool) -> list[Forecast] | None:
|
||||
"""Return the forecast array."""
|
||||
if hourly:
|
||||
|
|
|
@ -17,8 +17,9 @@ def mock_weather():
|
|||
"pressure": 100,
|
||||
"humidity": 50,
|
||||
"wind_speed": 10,
|
||||
"wind_bearing": "NE",
|
||||
"wind_bearing": 90,
|
||||
"dew_point": 12.1,
|
||||
"uv_index": 1.1,
|
||||
}
|
||||
mock_data.get_forecast.return_value = {}
|
||||
yield mock_data
|
||||
|
|
|
@ -2,10 +2,22 @@
|
|||
|
||||
from homeassistant import config_entries
|
||||
from homeassistant.components.met import DOMAIN
|
||||
from homeassistant.components.weather import DOMAIN as WEATHER_DOMAIN
|
||||
from homeassistant.components.weather import (
|
||||
ATTR_CONDITION_CLOUDY,
|
||||
ATTR_WEATHER_DEW_POINT,
|
||||
ATTR_WEATHER_HUMIDITY,
|
||||
ATTR_WEATHER_PRESSURE,
|
||||
ATTR_WEATHER_TEMPERATURE,
|
||||
ATTR_WEATHER_UV_INDEX,
|
||||
ATTR_WEATHER_WIND_BEARING,
|
||||
ATTR_WEATHER_WIND_SPEED,
|
||||
DOMAIN as WEATHER_DOMAIN,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import entity_registry as er
|
||||
|
||||
from . import init_integration
|
||||
|
||||
|
||||
async def test_new_config_entry(
|
||||
hass: HomeAssistant, entity_registry: er.EntityRegistry, mock_weather
|
||||
|
@ -36,6 +48,25 @@ async def test_legacy_config_entry(
|
|||
assert len(er.async_entries_for_config_entry(entity_registry, entry.entry_id)) == 1
|
||||
|
||||
|
||||
async def test_weather(hass: HomeAssistant, mock_weather) -> None:
|
||||
"""Test states of the weather."""
|
||||
|
||||
await init_integration(hass)
|
||||
assert len(hass.states.async_entity_ids("weather")) == 1
|
||||
entity_id = hass.states.async_entity_ids("weather")[0]
|
||||
|
||||
state = hass.states.get(entity_id)
|
||||
assert state
|
||||
assert state.state == ATTR_CONDITION_CLOUDY
|
||||
assert state.attributes[ATTR_WEATHER_TEMPERATURE] == 15
|
||||
assert state.attributes[ATTR_WEATHER_PRESSURE] == 100
|
||||
assert state.attributes[ATTR_WEATHER_HUMIDITY] == 50
|
||||
assert state.attributes[ATTR_WEATHER_WIND_SPEED] == 10
|
||||
assert state.attributes[ATTR_WEATHER_WIND_BEARING] == 90
|
||||
assert state.attributes[ATTR_WEATHER_DEW_POINT] == 12.1
|
||||
assert state.attributes[ATTR_WEATHER_UV_INDEX] == 1.1
|
||||
|
||||
|
||||
async def test_tracking_home(hass: HomeAssistant, mock_weather) -> None:
|
||||
"""Test we track home."""
|
||||
await hass.config_entries.flow.async_init("met", context={"source": "onboarding"})
|
||||
|
|
Loading…
Reference in New Issue