diff --git a/tests/components/weather/test_weather.py b/tests/components/weather/test_weather.py index ccddb35ad0a..c32c4d09523 100644 --- a/tests/components/weather/test_weather.py +++ b/tests/components/weather/test_weather.py @@ -1,6 +1,4 @@ """The tests for the Weather component.""" -import unittest - from homeassistant.components import weather from homeassistant.components.weather import ( ATTR_FORECAST, @@ -17,68 +15,58 @@ from homeassistant.components.weather import ( ATTR_WEATHER_WIND_BEARING, 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 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): - """Test the Weather component.""" +async def test_temperature_convert(hass): + """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): - """Set up things to be run when tests are started.""" - 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) + state = hass.states.get("weather.demo_weather_north") + assert state is not None - def tear_down_cleanup(self): - """Stop down everything that was started.""" - self.hass.stop() + assert state.state == "rainy" - def test_attributes(self): - """Test weather attributes.""" - 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 + data = state.attributes + assert data.get(ATTR_WEATHER_TEMPERATURE) == -24