mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 12:47:08 +00:00
Update weather tests to pytest style (#40917)
This commit is contained in:
parent
632bf4f7f7
commit
df1e910ac7
@ -1,6 +1,4 @@
|
|||||||
"""The tests for the Weather component."""
|
"""The tests for the Weather component."""
|
||||||
import unittest
|
|
||||||
|
|
||||||
from homeassistant.components import weather
|
from homeassistant.components import weather
|
||||||
from homeassistant.components.weather import (
|
from homeassistant.components.weather import (
|
||||||
ATTR_FORECAST,
|
ATTR_FORECAST,
|
||||||
@ -17,68 +15,58 @@ from homeassistant.components.weather import (
|
|||||||
ATTR_WEATHER_WIND_BEARING,
|
ATTR_WEATHER_WIND_BEARING,
|
||||||
ATTR_WEATHER_WIND_SPEED,
|
ATTR_WEATHER_WIND_SPEED,
|
||||||
)
|
)
|
||||||
from homeassistant.setup import setup_component
|
from homeassistant.setup import async_setup_component
|
||||||
from homeassistant.util.unit_system import METRIC_SYSTEM
|
from homeassistant.util.unit_system import METRIC_SYSTEM
|
||||||
|
|
||||||
from tests.common import get_test_home_assistant
|
|
||||||
|
async def test_attributes(hass):
|
||||||
|
"""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()
|
||||||
|
|
||||||
|
state = hass.states.get("weather.demo_weather_south")
|
||||||
|
assert state is not None
|
||||||
|
|
||||||
|
assert state.state == "sunny"
|
||||||
|
|
||||||
|
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
|
||||||
|
assert data.get(ATTR_WEATHER_WIND_SPEED) == 0.5
|
||||||
|
assert data.get(ATTR_WEATHER_WIND_BEARING) is None
|
||||||
|
assert data.get(ATTR_WEATHER_OZONE) is None
|
||||||
|
assert data.get(ATTR_WEATHER_ATTRIBUTION) == "Powered by Home Assistant"
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
class TestWeather(unittest.TestCase):
|
async def test_temperature_convert(hass):
|
||||||
"""Test the Weather component."""
|
"""Test temperature conversion."""
|
||||||
|
assert await async_setup_component(
|
||||||
|
hass, weather.DOMAIN, {"weather": {"platform": "demo"}}
|
||||||
|
)
|
||||||
|
hass.config.units = METRIC_SYSTEM
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
def setUp(self):
|
state = hass.states.get("weather.demo_weather_north")
|
||||||
"""Set up things to be run when tests are started."""
|
assert state is not None
|
||||||
self.hass = get_test_home_assistant()
|
|
||||||
self.hass.config.units = METRIC_SYSTEM
|
|
||||||
assert setup_component(
|
|
||||||
self.hass, weather.DOMAIN, {"weather": {"platform": "demo"}}
|
|
||||||
)
|
|
||||||
self.hass.block_till_done()
|
|
||||||
self.addCleanup(self.tear_down_cleanup)
|
|
||||||
|
|
||||||
def tear_down_cleanup(self):
|
assert state.state == "rainy"
|
||||||
"""Stop down everything that was started."""
|
|
||||||
self.hass.stop()
|
|
||||||
|
|
||||||
def test_attributes(self):
|
data = state.attributes
|
||||||
"""Test weather attributes."""
|
assert data.get(ATTR_WEATHER_TEMPERATURE) == -24
|
||||||
state = self.hass.states.get("weather.demo_weather_south")
|
|
||||||
assert state is not None
|
|
||||||
|
|
||||||
assert state.state == "sunny"
|
|
||||||
|
|
||||||
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
|
|
||||||
assert data.get(ATTR_WEATHER_WIND_SPEED) == 0.5
|
|
||||||
assert data.get(ATTR_WEATHER_WIND_BEARING) is None
|
|
||||||
assert data.get(ATTR_WEATHER_OZONE) is None
|
|
||||||
assert data.get(ATTR_WEATHER_ATTRIBUTION) == "Powered by Home Assistant"
|
|
||||||
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
|
|
||||||
|
|
||||||
def test_temperature_convert(self):
|
|
||||||
"""Test temperature conversion."""
|
|
||||||
state = self.hass.states.get("weather.demo_weather_north")
|
|
||||||
assert state is not None
|
|
||||||
|
|
||||||
assert state.state == "rainy"
|
|
||||||
|
|
||||||
data = state.attributes
|
|
||||||
assert data.get(ATTR_WEATHER_TEMPERATURE) == -24
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user