From 53d7c74839b84639efde9ff4948c80a5095d42dc Mon Sep 17 00:00:00 2001 From: "Flamm, Matthew H" Date: Sat, 3 Aug 2019 11:59:44 +0100 Subject: [PATCH] black test --- tests/components/nws/test_nws.py | 278 ++++++++++++++++++------------- 1 file changed, 165 insertions(+), 113 deletions(-) diff --git a/tests/components/nws/test_nws.py b/tests/components/nws/test_nws.py index b511e483096..c2838a4a03c 100644 --- a/tests/components/nws/test_nws.py +++ b/tests/components/nws/test_nws.py @@ -7,16 +7,33 @@ import aiohttp from homeassistant.components import weather from homeassistant.components.nws.weather import ATTR_FORECAST_PRECIP_PROB from homeassistant.components.weather import ( - ATTR_WEATHER_HUMIDITY, ATTR_WEATHER_PRESSURE, ATTR_WEATHER_TEMPERATURE, - ATTR_WEATHER_VISIBILITY, ATTR_WEATHER_WIND_BEARING, - ATTR_WEATHER_WIND_SPEED) + ATTR_WEATHER_HUMIDITY, + ATTR_WEATHER_PRESSURE, + ATTR_WEATHER_TEMPERATURE, + ATTR_WEATHER_VISIBILITY, + ATTR_WEATHER_WIND_BEARING, + ATTR_WEATHER_WIND_SPEED, +) from homeassistant.components.weather import ( - ATTR_FORECAST, ATTR_FORECAST_CONDITION, ATTR_FORECAST_TEMP, - ATTR_FORECAST_TIME, ATTR_FORECAST_WIND_BEARING, ATTR_FORECAST_WIND_SPEED) + ATTR_FORECAST, + ATTR_FORECAST_CONDITION, + ATTR_FORECAST_TEMP, + ATTR_FORECAST_TIME, + ATTR_FORECAST_WIND_BEARING, + ATTR_FORECAST_WIND_SPEED, +) from homeassistant.const import ( - LENGTH_KILOMETERS, LENGTH_METERS, LENGTH_MILES, PRECISION_WHOLE, - PRESSURE_INHG, PRESSURE_PA, PRESSURE_HPA, TEMP_CELSIUS, TEMP_FAHRENHEIT) + LENGTH_KILOMETERS, + LENGTH_METERS, + LENGTH_MILES, + PRECISION_WHOLE, + PRESSURE_INHG, + PRESSURE_PA, + PRESSURE_HPA, + TEMP_CELSIUS, + TEMP_FAHRENHEIT, +) from homeassistant.helpers.temperature import display_temp from homeassistant.util.pressure import convert as convert_pressure from homeassistant.util.distance import convert as convert_distance @@ -27,27 +44,28 @@ from homeassistant.setup import setup_component from tests.common import get_test_home_assistant, MockDependency OBS = { - 'temperature': 7, - 'relativeHumidity': 10, - 'windDirection': 180, - 'visibility': 10000, - 'windSpeed': 10, - 'seaLevelPressure': 30000, - 'iconTime': 'day', - 'iconWeather': (('Fair/clear', None),), + "temperature": 7, + "relativeHumidity": 10, + "windDirection": 180, + "visibility": 10000, + "windSpeed": 10, + "seaLevelPressure": 30000, + "iconTime": "day", + "iconWeather": (("Fair/clear", None),), +} + +FORE = [ + { + "temperature": 41, + "windBearing": 180, + "windSpeedAvg": 9, + "iconTime": "day", + "startTime": "2018-12-21T15:00:00-05:00", + "iconWeather": (("Fair/Clear", None), ("Thunderstorm (high cloud cover)", 40)), } +] -FORE = [{ - 'temperature': 41, - 'windBearing': 180, - 'windSpeedAvg': 9, - 'iconTime': 'day', - 'startTime': '2018-12-21T15:00:00-05:00', - 'iconWeather': (('Fair/Clear', None), - ('Thunderstorm (high cloud cover)', 40),), -}] - -STN = 'STNA' +STN = "STNA" class MockNws: @@ -118,47 +136,53 @@ class TestNWS(unittest.TestCase): """Stop down everything that was started.""" self.hass.stop() - @MockDependency('pynws') + @MockDependency("pynws") @patch("pynws.SimpleNWS", new=MockNws) def test_nws(self, mock_pynws): """Test for successfully setting up with imperial.""" mock_pynws.SimpleNWS.data_obs = OBS mock_pynws.SimpleNWS.data_fore = FORE - assert setup_component(self.hass, weather.DOMAIN, { - 'weather': { - 'name': 'HomeWeather', - 'platform': 'nws', - 'api_key': 'test_email', - } - }) + assert setup_component( + self.hass, + weather.DOMAIN, + { + "weather": { + "name": "HomeWeather", + "platform": "nws", + "api_key": "test_email", + } + }, + ) - state = self.hass.states.get('weather.homeweather') - assert state.state == 'sunny' + state = self.hass.states.get("weather.homeweather") + assert state.state == "sunny" data = state.attributes temp_f = convert_temperature(7, TEMP_CELSIUS, TEMP_FAHRENHEIT) - assert data.get(ATTR_WEATHER_TEMPERATURE) == \ - display_temp(self.hass, temp_f, TEMP_FAHRENHEIT, PRECISION_WHOLE) + assert data.get(ATTR_WEATHER_TEMPERATURE) == display_temp( + self.hass, temp_f, TEMP_FAHRENHEIT, PRECISION_WHOLE + ) assert data.get(ATTR_WEATHER_HUMIDITY) == 10 assert data.get(ATTR_WEATHER_PRESSURE) == round( - convert_pressure(30000, PRESSURE_PA, PRESSURE_INHG), 2) + convert_pressure(30000, PRESSURE_PA, PRESSURE_INHG), 2 + ) assert data.get(ATTR_WEATHER_WIND_SPEED) == round(10 * 2.237) assert data.get(ATTR_WEATHER_WIND_BEARING) == 180 assert data.get(ATTR_WEATHER_VISIBILITY) == round( - convert_distance(10000, LENGTH_METERS, LENGTH_MILES)) - assert state.attributes.get('friendly_name') == 'HomeWeather' + convert_distance(10000, LENGTH_METERS, LENGTH_MILES) + ) + assert state.attributes.get("friendly_name") == "HomeWeather" forecast = data.get(ATTR_FORECAST) - assert forecast[0].get(ATTR_FORECAST_CONDITION) == 'lightning-rainy' + assert forecast[0].get(ATTR_FORECAST_CONDITION) == "lightning-rainy" assert forecast[0].get(ATTR_FORECAST_PRECIP_PROB) == 40 assert forecast[0].get(ATTR_FORECAST_TEMP) == 41 - assert forecast[0].get(ATTR_FORECAST_TIME) == \ - '2018-12-21T15:00:00-05:00' + assert forecast[0].get(ATTR_FORECAST_TIME) == "2018-12-21T15:00:00-05:00" assert forecast[0].get(ATTR_FORECAST_WIND_BEARING) == 180 assert forecast[0].get(ATTR_FORECAST_WIND_SPEED) == 9 - @MockDependency('pynws') + @MockDependency("pynws") @patch("pynws.SimpleNWS", new=MockNws) def test_nws_metric(self, mock_pynws): """Test for successfully setting up with metric.""" @@ -166,120 +190,148 @@ class TestNWS(unittest.TestCase): mock_pynws.SimpleNWS.data_fore = FORE self.hass.config.units = METRIC_SYSTEM - assert setup_component(self.hass, weather.DOMAIN, { - 'weather': { - 'name': 'HomeWeather', - 'platform': 'nws', - 'api_key': 'test_email', - } - }) + assert setup_component( + self.hass, + weather.DOMAIN, + { + "weather": { + "name": "HomeWeather", + "platform": "nws", + "api_key": "test_email", + } + }, + ) - state = self.hass.states.get('weather.homeweather') - assert state.state == 'sunny' + state = self.hass.states.get("weather.homeweather") + assert state.state == "sunny" data = state.attributes temp_f = convert_temperature(7, TEMP_CELSIUS, TEMP_FAHRENHEIT) - assert data.get(ATTR_WEATHER_TEMPERATURE) == \ - display_temp(self.hass, temp_f, TEMP_FAHRENHEIT, PRECISION_WHOLE) + assert data.get(ATTR_WEATHER_TEMPERATURE) == display_temp( + self.hass, temp_f, TEMP_FAHRENHEIT, PRECISION_WHOLE + ) assert data.get(ATTR_WEATHER_HUMIDITY) == 10 assert data.get(ATTR_WEATHER_PRESSURE) == round( - convert_pressure(30000, PRESSURE_PA, PRESSURE_HPA)) + convert_pressure(30000, PRESSURE_PA, PRESSURE_HPA) + ) assert data.get(ATTR_WEATHER_WIND_SPEED) == round(3.6 * 10) assert data.get(ATTR_WEATHER_WIND_BEARING) == 180 assert data.get(ATTR_WEATHER_VISIBILITY) == round( - convert_distance(10000, LENGTH_METERS, LENGTH_KILOMETERS)) - assert state.attributes.get('friendly_name') == 'HomeWeather' + convert_distance(10000, LENGTH_METERS, LENGTH_KILOMETERS) + ) + assert state.attributes.get("friendly_name") == "HomeWeather" forecast = data.get(ATTR_FORECAST) - assert forecast[0].get(ATTR_FORECAST_CONDITION) == 'lightning-rainy' + assert forecast[0].get(ATTR_FORECAST_CONDITION) == "lightning-rainy" assert forecast[0].get(ATTR_FORECAST_PRECIP_PROB) == 40 assert forecast[0].get(ATTR_FORECAST_TEMP) == convert_temperature( - 41, TEMP_FAHRENHEIT, TEMP_CELSIUS) - assert forecast[0].get(ATTR_FORECAST_TIME) == \ - '2018-12-21T15:00:00-05:00' + 41, TEMP_FAHRENHEIT, TEMP_CELSIUS + ) + assert forecast[0].get(ATTR_FORECAST_TIME) == "2018-12-21T15:00:00-05:00" assert forecast[0].get(ATTR_FORECAST_WIND_BEARING) == 180 assert forecast[0].get(ATTR_FORECAST_WIND_SPEED) == round( - convert_distance(9, LENGTH_MILES, LENGTH_KILOMETERS)) + convert_distance(9, LENGTH_MILES, LENGTH_KILOMETERS) + ) - @MockDependency('pynws') + @MockDependency("pynws") @patch("pynws.SimpleNWS", new=MockNws) def test_nws_no_obs_fore1x(self, mock_pynws): """Test with no data.""" - assert setup_component(self.hass, weather.DOMAIN, { - 'weather': { - 'name': 'HomeWeather', - 'platform': 'nws', - 'api_key': 'test_email', - } - }) + assert setup_component( + self.hass, + weather.DOMAIN, + { + "weather": { + "name": "HomeWeather", + "platform": "nws", + "api_key": "test_email", + } + }, + ) - state = self.hass.states.get('weather.homeweather') - assert state.state == 'unknown' + state = self.hass.states.get("weather.homeweather") + assert state.state == "unknown" - @MockDependency('pynws') + @MockDependency("pynws") @patch("pynws.SimpleNWS", new=MockNws) def test_nws_missing_valuess(self, mock_pynws): """Test with missing data.""" mock_pynws.SimpleNWS.data_obs = {key: None for key in OBS} mock_pynws.SimpleNWS.data_fore = [{key: None for key in FORE[0]}] - assert setup_component(self.hass, weather.DOMAIN, { - 'weather': { - 'name': 'HomeWeather', - 'platform': 'nws', - 'api_key': 'test_email', - } - }) + assert setup_component( + self.hass, + weather.DOMAIN, + { + "weather": { + "name": "HomeWeather", + "platform": "nws", + "api_key": "test_email", + } + }, + ) - state = self.hass.states.get('weather.homeweather') - assert state.state == 'unknown' + state = self.hass.states.get("weather.homeweather") + assert state.state == "unknown" - @MockDependency('pynws') + @MockDependency("pynws") @patch("pynws.SimpleNWS", new=MockNws) def test_nws_error_obs(self, mock_pynws): """Test for successfully setting up the NWS platform with name.""" mock_pynws.SimpleNWS.error_obs = True - assert setup_component(self.hass, weather.DOMAIN, { - 'weather': { - 'name': 'HomeWeather', - 'platform': 'nws', - 'api_key': 'test_email', - } - }) + assert setup_component( + self.hass, + weather.DOMAIN, + { + "weather": { + "name": "HomeWeather", + "platform": "nws", + "api_key": "test_email", + } + }, + ) - state = self.hass.states.get('weather.homeweather') - assert state.state == 'unknown' + state = self.hass.states.get("weather.homeweather") + assert state.state == "unknown" - @MockDependency('pynws') + @MockDependency("pynws") @patch("pynws.SimpleNWS", new=MockNws) def test_nws_error_fore(self, mock_pynws): """Test error forecast.""" mock_pynws.SimpleNWS.error_fore = True - assert setup_component(self.hass, weather.DOMAIN, { - 'weather': { - 'name': 'HomeWeather', - 'platform': 'nws', - 'api_key': 'test_email', - } - }) + assert setup_component( + self.hass, + weather.DOMAIN, + { + "weather": { + "name": "HomeWeather", + "platform": "nws", + "api_key": "test_email", + } + }, + ) - state = self.hass.states.get('weather.homeweather') + state = self.hass.states.get("weather.homeweather") data = state.attributes - assert data.get('forecast') is None + assert data.get("forecast") is None - @MockDependency('pynws') + @MockDependency("pynws") @patch("pynws.SimpleNWS", new=MockNws) def test_nws_error_stn(self, mock_pynws): """Test station error..""" mock_pynws.SimpleNWS.error_stn = True - assert setup_component(self.hass, weather.DOMAIN, { - 'weather': { - 'name': 'HomeWeather', - 'platform': 'nws', - 'api_key': 'test_email', - } - }) + assert setup_component( + self.hass, + weather.DOMAIN, + { + "weather": { + "name": "HomeWeather", + "platform": "nws", + "api_key": "test_email", + } + }, + ) - state = self.hass.states.get('weather.homeweather') + state = self.hass.states.get("weather.homeweather") assert state is None