From c4a2204cc777df440cc5d9c3b9671ebf4e8812c3 Mon Sep 17 00:00:00 2001 From: rianadon Date: Wed, 30 Mar 2022 13:49:28 -0700 Subject: [PATCH] Calculate temperature precision based on user units (#59560) * Calculate temperature precision based on user units * Fix a few more failing tests * Fix failing test Co-authored-by: Erik --- homeassistant/components/weather/__init__.py | 2 +- tests/components/climacell/test_weather.py | 62 ++++++++++---------- tests/components/demo/test_weather.py | 2 +- tests/components/nws/const.py | 4 +- tests/components/tomorrowio/test_weather.py | 58 +++++++++--------- 5 files changed, 65 insertions(+), 63 deletions(-) diff --git a/homeassistant/components/weather/__init__.py b/homeassistant/components/weather/__init__.py index 15250059fec..2e0f8912867 100644 --- a/homeassistant/components/weather/__init__.py +++ b/homeassistant/components/weather/__init__.py @@ -198,7 +198,7 @@ class WeatherEntity(Entity): return self._attr_precision return ( PRECISION_TENTHS - if self.temperature_unit == TEMP_CELSIUS + if self.hass.config.units.temperature_unit == TEMP_CELSIUS else PRECISION_WHOLE ) diff --git a/tests/components/climacell/test_weather.py b/tests/components/climacell/test_weather.py index d5385b6cfd5..3c02f6b9b1f 100644 --- a/tests/components/climacell/test_weather.py +++ b/tests/components/climacell/test_weather.py @@ -94,127 +94,127 @@ async def test_v3_weather( ATTR_FORECAST_TIME: "2021-03-07T00:00:00-08:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 0, - ATTR_FORECAST_TEMP: 7, - ATTR_FORECAST_TEMP_LOW: -5, + ATTR_FORECAST_TEMP: 7.2, + ATTR_FORECAST_TEMP_LOW: -4.7, }, { ATTR_FORECAST_CONDITION: ATTR_CONDITION_CLOUDY, ATTR_FORECAST_TIME: "2021-03-08T00:00:00-08:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 0, - ATTR_FORECAST_TEMP: 10, - ATTR_FORECAST_TEMP_LOW: -4, + ATTR_FORECAST_TEMP: 9.7, + ATTR_FORECAST_TEMP_LOW: -4.0, }, { ATTR_FORECAST_CONDITION: ATTR_CONDITION_CLOUDY, ATTR_FORECAST_TIME: "2021-03-09T00:00:00-08:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 0, - ATTR_FORECAST_TEMP: 19, - ATTR_FORECAST_TEMP_LOW: 0, + ATTR_FORECAST_TEMP: 19.4, + ATTR_FORECAST_TEMP_LOW: -0.3, }, { ATTR_FORECAST_CONDITION: ATTR_CONDITION_CLOUDY, ATTR_FORECAST_TIME: "2021-03-10T00:00:00-08:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 0, - ATTR_FORECAST_TEMP: 18, - ATTR_FORECAST_TEMP_LOW: 3, + ATTR_FORECAST_TEMP: 18.5, + ATTR_FORECAST_TEMP_LOW: 3.0, }, { ATTR_FORECAST_CONDITION: ATTR_CONDITION_CLOUDY, ATTR_FORECAST_TIME: "2021-03-11T00:00:00-08:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 5, - ATTR_FORECAST_TEMP: 20, - ATTR_FORECAST_TEMP_LOW: 9, + ATTR_FORECAST_TEMP: 19.7, + ATTR_FORECAST_TEMP_LOW: 9.3, }, { ATTR_FORECAST_CONDITION: ATTR_CONDITION_CLOUDY, ATTR_FORECAST_TIME: "2021-03-12T00:00:00-08:00", ATTR_FORECAST_PRECIPITATION: 0.0457, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 25, - ATTR_FORECAST_TEMP: 20, - ATTR_FORECAST_TEMP_LOW: 12, + ATTR_FORECAST_TEMP: 19.9, + ATTR_FORECAST_TEMP_LOW: 12.1, }, { ATTR_FORECAST_CONDITION: ATTR_CONDITION_CLOUDY, ATTR_FORECAST_TIME: "2021-03-13T00:00:00-08:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 25, - ATTR_FORECAST_TEMP: 16, - ATTR_FORECAST_TEMP_LOW: 7, + ATTR_FORECAST_TEMP: 15.8, + ATTR_FORECAST_TEMP_LOW: 7.5, }, { ATTR_FORECAST_CONDITION: ATTR_CONDITION_RAINY, ATTR_FORECAST_TIME: "2021-03-14T00:00:00-08:00", ATTR_FORECAST_PRECIPITATION: 1.0744, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 75, - ATTR_FORECAST_TEMP: 6, - ATTR_FORECAST_TEMP_LOW: 3, + ATTR_FORECAST_TEMP: 6.4, + ATTR_FORECAST_TEMP_LOW: 3.2, }, { ATTR_FORECAST_CONDITION: ATTR_CONDITION_SNOWY, ATTR_FORECAST_TIME: "2021-03-15T00:00:00-07:00", # DST starts ATTR_FORECAST_PRECIPITATION: 7.3050, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 95, - ATTR_FORECAST_TEMP: 1, - ATTR_FORECAST_TEMP_LOW: 0, + ATTR_FORECAST_TEMP: 1.2, + ATTR_FORECAST_TEMP_LOW: 0.2, }, { ATTR_FORECAST_CONDITION: ATTR_CONDITION_CLOUDY, ATTR_FORECAST_TIME: "2021-03-16T00:00:00-07:00", ATTR_FORECAST_PRECIPITATION: 0.0051, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 5, - ATTR_FORECAST_TEMP: 6, - ATTR_FORECAST_TEMP_LOW: -2, + ATTR_FORECAST_TEMP: 6.1, + ATTR_FORECAST_TEMP_LOW: -1.6, }, { ATTR_FORECAST_CONDITION: ATTR_CONDITION_CLOUDY, ATTR_FORECAST_TIME: "2021-03-17T00:00:00-07:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 0, - ATTR_FORECAST_TEMP: 11, - ATTR_FORECAST_TEMP_LOW: 1, + ATTR_FORECAST_TEMP: 11.3, + ATTR_FORECAST_TEMP_LOW: 1.3, }, { ATTR_FORECAST_CONDITION: ATTR_CONDITION_CLOUDY, ATTR_FORECAST_TIME: "2021-03-18T00:00:00-07:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 5, - ATTR_FORECAST_TEMP: 12, - ATTR_FORECAST_TEMP_LOW: 6, + ATTR_FORECAST_TEMP: 12.3, + ATTR_FORECAST_TEMP_LOW: 5.6, }, { ATTR_FORECAST_CONDITION: ATTR_CONDITION_CLOUDY, ATTR_FORECAST_TIME: "2021-03-19T00:00:00-07:00", ATTR_FORECAST_PRECIPITATION: 0.1778, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 45, - ATTR_FORECAST_TEMP: 9, - ATTR_FORECAST_TEMP_LOW: 5, + ATTR_FORECAST_TEMP: 9.4, + ATTR_FORECAST_TEMP_LOW: 4.7, }, { ATTR_FORECAST_CONDITION: ATTR_CONDITION_RAINY, ATTR_FORECAST_TIME: "2021-03-20T00:00:00-07:00", ATTR_FORECAST_PRECIPITATION: 1.2319, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 55, - ATTR_FORECAST_TEMP: 5, - ATTR_FORECAST_TEMP_LOW: 3, + ATTR_FORECAST_TEMP: 5.0, + ATTR_FORECAST_TEMP_LOW: 3.1, }, { ATTR_FORECAST_CONDITION: ATTR_CONDITION_CLOUDY, ATTR_FORECAST_TIME: "2021-03-21T00:00:00-07:00", ATTR_FORECAST_PRECIPITATION: 0.0432, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 20, - ATTR_FORECAST_TEMP: 7, - ATTR_FORECAST_TEMP_LOW: 1, + ATTR_FORECAST_TEMP: 6.8, + ATTR_FORECAST_TEMP_LOW: 0.9, }, ] assert weather_state.attributes[ATTR_FRIENDLY_NAME] == "ClimaCell - Daily" assert weather_state.attributes[ATTR_WEATHER_HUMIDITY] == 24 assert weather_state.attributes[ATTR_WEATHER_OZONE] == 52.625 assert weather_state.attributes[ATTR_WEATHER_PRESSURE] == 1028.1246 - assert weather_state.attributes[ATTR_WEATHER_TEMPERATURE] == 7 + assert weather_state.attributes[ATTR_WEATHER_TEMPERATURE] == 6.6 assert weather_state.attributes[ATTR_WEATHER_VISIBILITY] == 9.9940 assert weather_state.attributes[ATTR_WEATHER_WIND_BEARING] == 320.31 assert weather_state.attributes[ATTR_WEATHER_WIND_SPEED] == 14.6289 diff --git a/tests/components/demo/test_weather.py b/tests/components/demo/test_weather.py index c4ae8fcd79c..db3f3441df1 100644 --- a/tests/components/demo/test_weather.py +++ b/tests/components/demo/test_weather.py @@ -69,4 +69,4 @@ async def test_temperature_convert(hass): assert state.state == "rainy" data = state.attributes - assert data.get(ATTR_WEATHER_TEMPERATURE) == -24 + assert data.get(ATTR_WEATHER_TEMPERATURE) == -24.4 diff --git a/tests/components/nws/const.py b/tests/components/nws/const.py index c7387d4bf8c..dcf591b83ae 100644 --- a/tests/components/nws/const.py +++ b/tests/components/nws/const.py @@ -157,7 +157,9 @@ EXPECTED_FORECAST_IMPERIAL = { EXPECTED_FORECAST_METRIC = { ATTR_FORECAST_CONDITION: ATTR_CONDITION_LIGHTNING_RAINY, ATTR_FORECAST_TIME: "2019-08-12T20:00:00-04:00", - ATTR_FORECAST_TEMP: round(convert_temperature(10, TEMP_FAHRENHEIT, TEMP_CELSIUS)), + ATTR_FORECAST_TEMP: round( + convert_temperature(10, TEMP_FAHRENHEIT, TEMP_CELSIUS), 1 + ), ATTR_FORECAST_WIND_SPEED: round( convert_speed(10, SPEED_MILES_PER_HOUR, SPEED_KILOMETERS_PER_HOUR) ), diff --git a/tests/components/tomorrowio/test_weather.py b/tests/components/tomorrowio/test_weather.py index f47e8ed22d8..3e5eb81edec 100644 --- a/tests/components/tomorrowio/test_weather.py +++ b/tests/components/tomorrowio/test_weather.py @@ -99,8 +99,8 @@ async def test_v4_weather(hass: HomeAssistant) -> None: ATTR_FORECAST_TIME: "2021-03-07T11:00:00+00:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 0, - ATTR_FORECAST_TEMP: 8, - ATTR_FORECAST_TEMP_LOW: -3, + ATTR_FORECAST_TEMP: 7.7, + ATTR_FORECAST_TEMP_LOW: -3.3, ATTR_FORECAST_WIND_BEARING: 239.6, ATTR_FORECAST_WIND_SPEED: 4.24, }, @@ -109,8 +109,8 @@ async def test_v4_weather(hass: HomeAssistant) -> None: ATTR_FORECAST_TIME: "2021-03-08T11:00:00+00:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 0, - ATTR_FORECAST_TEMP: 10, - ATTR_FORECAST_TEMP_LOW: -3, + ATTR_FORECAST_TEMP: 9.7, + ATTR_FORECAST_TEMP_LOW: -3.2, ATTR_FORECAST_WIND_BEARING: 262.82, ATTR_FORECAST_WIND_SPEED: 3.24, }, @@ -119,8 +119,8 @@ async def test_v4_weather(hass: HomeAssistant) -> None: ATTR_FORECAST_TIME: "2021-03-09T11:00:00+00:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 0, - ATTR_FORECAST_TEMP: 19, - ATTR_FORECAST_TEMP_LOW: 0, + ATTR_FORECAST_TEMP: 19.4, + ATTR_FORECAST_TEMP_LOW: -0.3, ATTR_FORECAST_WIND_BEARING: 229.3, ATTR_FORECAST_WIND_SPEED: 3.15, }, @@ -129,8 +129,8 @@ async def test_v4_weather(hass: HomeAssistant) -> None: ATTR_FORECAST_TIME: "2021-03-10T11:00:00+00:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 0, - ATTR_FORECAST_TEMP: 18, - ATTR_FORECAST_TEMP_LOW: 3, + ATTR_FORECAST_TEMP: 18.5, + ATTR_FORECAST_TEMP_LOW: 3.0, ATTR_FORECAST_WIND_BEARING: 149.91, ATTR_FORECAST_WIND_SPEED: 4.76, }, @@ -139,8 +139,8 @@ async def test_v4_weather(hass: HomeAssistant) -> None: ATTR_FORECAST_TIME: "2021-03-11T11:00:00+00:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 0, - ATTR_FORECAST_TEMP: 19, - ATTR_FORECAST_TEMP_LOW: 9, + ATTR_FORECAST_TEMP: 19.0, + ATTR_FORECAST_TEMP_LOW: 9.0, ATTR_FORECAST_WIND_BEARING: 210.45, ATTR_FORECAST_WIND_SPEED: 7.01, }, @@ -149,8 +149,8 @@ async def test_v4_weather(hass: HomeAssistant) -> None: ATTR_FORECAST_TIME: "2021-03-12T11:00:00+00:00", ATTR_FORECAST_PRECIPITATION: 0.12, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 25, - ATTR_FORECAST_TEMP: 20, - ATTR_FORECAST_TEMP_LOW: 12, + ATTR_FORECAST_TEMP: 19.9, + ATTR_FORECAST_TEMP_LOW: 12.1, ATTR_FORECAST_WIND_BEARING: 217.98, ATTR_FORECAST_WIND_SPEED: 5.5, }, @@ -159,8 +159,8 @@ async def test_v4_weather(hass: HomeAssistant) -> None: ATTR_FORECAST_TIME: "2021-03-13T11:00:00+00:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 25, - ATTR_FORECAST_TEMP: 12, - ATTR_FORECAST_TEMP_LOW: 6, + ATTR_FORECAST_TEMP: 12.5, + ATTR_FORECAST_TEMP_LOW: 6.1, ATTR_FORECAST_WIND_BEARING: 58.79, ATTR_FORECAST_WIND_SPEED: 4.35, }, @@ -169,8 +169,8 @@ async def test_v4_weather(hass: HomeAssistant) -> None: ATTR_FORECAST_TIME: "2021-03-14T10:00:00+00:00", ATTR_FORECAST_PRECIPITATION: 23.96, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 95, - ATTR_FORECAST_TEMP: 6, - ATTR_FORECAST_TEMP_LOW: 1, + ATTR_FORECAST_TEMP: 6.1, + ATTR_FORECAST_TEMP_LOW: 0.8, ATTR_FORECAST_WIND_BEARING: 70.25, ATTR_FORECAST_WIND_SPEED: 7.26, }, @@ -179,8 +179,8 @@ async def test_v4_weather(hass: HomeAssistant) -> None: ATTR_FORECAST_TIME: "2021-03-15T10:00:00+00:00", ATTR_FORECAST_PRECIPITATION: 1.46, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 55, - ATTR_FORECAST_TEMP: 6, - ATTR_FORECAST_TEMP_LOW: -1, + ATTR_FORECAST_TEMP: 6.5, + ATTR_FORECAST_TEMP_LOW: -1.5, ATTR_FORECAST_WIND_BEARING: 84.47, ATTR_FORECAST_WIND_SPEED: 7.1, }, @@ -189,8 +189,8 @@ async def test_v4_weather(hass: HomeAssistant) -> None: ATTR_FORECAST_TIME: "2021-03-16T10:00:00+00:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 0, - ATTR_FORECAST_TEMP: 6, - ATTR_FORECAST_TEMP_LOW: -2, + ATTR_FORECAST_TEMP: 6.1, + ATTR_FORECAST_TEMP_LOW: -1.6, ATTR_FORECAST_WIND_BEARING: 103.85, ATTR_FORECAST_WIND_SPEED: 3.0, }, @@ -199,8 +199,8 @@ async def test_v4_weather(hass: HomeAssistant) -> None: ATTR_FORECAST_TIME: "2021-03-17T10:00:00+00:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 0, - ATTR_FORECAST_TEMP: 11, - ATTR_FORECAST_TEMP_LOW: 1, + ATTR_FORECAST_TEMP: 11.3, + ATTR_FORECAST_TEMP_LOW: 1.3, ATTR_FORECAST_WIND_BEARING: 145.41, ATTR_FORECAST_WIND_SPEED: 3.25, }, @@ -209,8 +209,8 @@ async def test_v4_weather(hass: HomeAssistant) -> None: ATTR_FORECAST_TIME: "2021-03-18T10:00:00+00:00", ATTR_FORECAST_PRECIPITATION: 0, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 10, - ATTR_FORECAST_TEMP: 12, - ATTR_FORECAST_TEMP_LOW: 5, + ATTR_FORECAST_TEMP: 12.3, + ATTR_FORECAST_TEMP_LOW: 5.2, ATTR_FORECAST_WIND_BEARING: 62.99, ATTR_FORECAST_WIND_SPEED: 2.94, }, @@ -219,8 +219,8 @@ async def test_v4_weather(hass: HomeAssistant) -> None: ATTR_FORECAST_TIME: "2021-03-19T10:00:00+00:00", ATTR_FORECAST_PRECIPITATION: 2.93, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 55, - ATTR_FORECAST_TEMP: 9, - ATTR_FORECAST_TEMP_LOW: 4, + ATTR_FORECAST_TEMP: 9.4, + ATTR_FORECAST_TEMP_LOW: 4.1, ATTR_FORECAST_WIND_BEARING: 68.54, ATTR_FORECAST_WIND_SPEED: 6.22, }, @@ -229,8 +229,8 @@ async def test_v4_weather(hass: HomeAssistant) -> None: ATTR_FORECAST_TIME: "2021-03-20T10:00:00+00:00", ATTR_FORECAST_PRECIPITATION: 1.22, ATTR_FORECAST_PRECIPITATION_PROBABILITY: 33.3, - ATTR_FORECAST_TEMP: 5, - ATTR_FORECAST_TEMP_LOW: 2, + ATTR_FORECAST_TEMP: 4.5, + ATTR_FORECAST_TEMP_LOW: 1.7, ATTR_FORECAST_WIND_BEARING: 56.98, ATTR_FORECAST_WIND_SPEED: 7.76, }, @@ -239,7 +239,7 @@ async def test_v4_weather(hass: HomeAssistant) -> None: assert weather_state.attributes[ATTR_WEATHER_HUMIDITY] == 23 assert weather_state.attributes[ATTR_WEATHER_OZONE] == 46.53 assert weather_state.attributes[ATTR_WEATHER_PRESSURE] == 102776.91 - assert weather_state.attributes[ATTR_WEATHER_TEMPERATURE] == 7 + assert weather_state.attributes[ATTR_WEATHER_TEMPERATURE] == 6.7 assert weather_state.attributes[ATTR_WEATHER_VISIBILITY] == 13.12 assert weather_state.attributes[ATTR_WEATHER_WIND_BEARING] == 315.14 assert weather_state.attributes[ATTR_WEATHER_WIND_SPEED] == 4.17