From 309424d3b9858ca6004303b84b90b298b79e1463 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Tue, 19 Apr 2022 11:38:52 -1000 Subject: [PATCH] Prevent tests changing units from affecting other tests (#70300) * Prevent tests changing temperature_unit from affecting other tests * tweak --- tests/components/accuweather/test_sensor.py | 4 +--- tests/components/conftest.py | 10 ++++++++++ tests/components/demo/test_water_heater.py | 4 +--- tests/components/gdacs/test_geo_location.py | 4 +--- tests/components/geonetnz_quakes/test_geo_location.py | 4 +--- tests/components/geonetnz_volcano/test_sensor.py | 4 +--- tests/components/mazda/test_sensor.py | 5 +---- tests/components/subaru/test_sensor.py | 5 +---- tests/conftest.py | 3 +++ 9 files changed, 20 insertions(+), 23 deletions(-) diff --git a/tests/components/accuweather/test_sensor.py b/tests/components/accuweather/test_sensor.py index a1c454ad0b7..8102605ea0d 100644 --- a/tests/components/accuweather/test_sensor.py +++ b/tests/components/accuweather/test_sensor.py @@ -30,7 +30,6 @@ from homeassistant.const import ( from homeassistant.helpers import entity_registry as er from homeassistant.setup import async_setup_component from homeassistant.util.dt import utcnow -from homeassistant.util.unit_system import IMPERIAL_SYSTEM from tests.common import async_fire_time_changed, load_fixture from tests.components.accuweather import init_integration @@ -694,9 +693,8 @@ async def test_manual_update_entity(hass): assert mock_forecast.call_count == 1 -async def test_sensor_imperial_units(hass): +async def test_sensor_imperial_units(hass, units_imperial): """Test states of the sensor without forecast.""" - hass.config.units = IMPERIAL_SYSTEM await init_integration(hass) state = hass.states.get("sensor.home_cloud_ceiling") diff --git a/tests/components/conftest.py b/tests/components/conftest.py index f153263cbc6..00609f750fb 100644 --- a/tests/components/conftest.py +++ b/tests/components/conftest.py @@ -4,6 +4,9 @@ from unittest.mock import AsyncMock, patch import pytest +from homeassistant.core import HomeAssistant +from homeassistant.util.unit_system import IMPERIAL_SYSTEM + @pytest.fixture(scope="session", autouse=True) def patch_zeroconf_multiple_catcher(): @@ -33,3 +36,10 @@ def entity_registry_enabled_by_default() -> Generator[AsyncMock, None, None]: return_value=True, ) as mock_entity_registry_enabled_by_default: yield mock_entity_registry_enabled_by_default + + +@pytest.fixture +def units_imperial(hass: HomeAssistant) -> Generator[None, None, None]: + """Fixture to temporary change units to imperial.""" + with patch.object(hass.config, "units", IMPERIAL_SYSTEM): + yield diff --git a/tests/components/demo/test_water_heater.py b/tests/components/demo/test_water_heater.py index a6b4d999ddb..bcf16346a48 100644 --- a/tests/components/demo/test_water_heater.py +++ b/tests/components/demo/test_water_heater.py @@ -4,7 +4,6 @@ import voluptuous as vol from homeassistant.components import water_heater from homeassistant.setup import async_setup_component -from homeassistant.util.unit_system import IMPERIAL_SYSTEM from tests.components.water_heater import common @@ -13,9 +12,8 @@ ENTITY_WATER_HEATER_CELSIUS = "water_heater.demo_water_heater_celsius" @pytest.fixture(autouse=True) -async def setup_comp(hass): +async def setup_comp(hass, units_imperial): """Set up demo component.""" - hass.config.units = IMPERIAL_SYSTEM assert await async_setup_component( hass, water_heater.DOMAIN, {"water_heater": {"platform": "demo"}} ) diff --git a/tests/components/gdacs/test_geo_location.py b/tests/components/gdacs/test_geo_location.py index 8fcd5db24a6..020bba10545 100644 --- a/tests/components/gdacs/test_geo_location.py +++ b/tests/components/gdacs/test_geo_location.py @@ -34,7 +34,6 @@ from homeassistant.const import ( from homeassistant.helpers import entity_registry as er from homeassistant.setup import async_setup_component import homeassistant.util.dt as dt_util -from homeassistant.util.unit_system import IMPERIAL_SYSTEM from tests.common import async_fire_time_changed from tests.components.gdacs import _generate_mock_feed_entry @@ -205,9 +204,8 @@ async def test_setup(hass): assert len(entity_registry.entities) == 1 -async def test_setup_imperial(hass): +async def test_setup_imperial(hass, units_imperial): """Test the setup of the integration using imperial unit system.""" - hass.config.units = IMPERIAL_SYSTEM # Set up some mock feed entries for this test. mock_entry_1 = _generate_mock_feed_entry( "1234", diff --git a/tests/components/geonetnz_quakes/test_geo_location.py b/tests/components/geonetnz_quakes/test_geo_location.py index 0690da5bf7b..ed2d2d4b1d0 100644 --- a/tests/components/geonetnz_quakes/test_geo_location.py +++ b/tests/components/geonetnz_quakes/test_geo_location.py @@ -28,7 +28,6 @@ from homeassistant.const import ( from homeassistant.helpers import entity_registry as er from homeassistant.setup import async_setup_component import homeassistant.util.dt as dt_util -from homeassistant.util.unit_system import IMPERIAL_SYSTEM from tests.common import async_fire_time_changed from tests.components.geonetnz_quakes import _generate_mock_feed_entry @@ -168,9 +167,8 @@ async def test_setup(hass): assert len(entity_registry.entities) == 1 -async def test_setup_imperial(hass): +async def test_setup_imperial(hass, units_imperial): """Test the setup of the integration using imperial unit system.""" - hass.config.units = IMPERIAL_SYSTEM # Set up some mock feed entries for this test. mock_entry_1 = _generate_mock_feed_entry("1234", "Title 1", 15.5, (38.0, -3.0)) diff --git a/tests/components/geonetnz_volcano/test_sensor.py b/tests/components/geonetnz_volcano/test_sensor.py index d3d2d5dcc2e..d608c3b2614 100644 --- a/tests/components/geonetnz_volcano/test_sensor.py +++ b/tests/components/geonetnz_volcano/test_sensor.py @@ -23,7 +23,6 @@ from homeassistant.const import ( ) from homeassistant.setup import async_setup_component import homeassistant.util.dt as dt_util -from homeassistant.util.unit_system import IMPERIAL_SYSTEM from tests.common import async_fire_time_changed from tests.components.geonetnz_volcano import _generate_mock_feed_entry @@ -147,9 +146,8 @@ async def test_setup(hass): ) -async def test_setup_imperial(hass): +async def test_setup_imperial(hass, units_imperial): """Test the setup of the integration using imperial unit system.""" - hass.config.units = IMPERIAL_SYSTEM # Set up some mock feed entries for this test. mock_entry_1 = _generate_mock_feed_entry("1234", "Title 1", 1, 15.5, (38.0, -3.0)) diff --git a/tests/components/mazda/test_sensor.py b/tests/components/mazda/test_sensor.py index f7fb379da51..e8762f98adf 100644 --- a/tests/components/mazda/test_sensor.py +++ b/tests/components/mazda/test_sensor.py @@ -16,7 +16,6 @@ from homeassistant.const import ( PRESSURE_PSI, ) from homeassistant.helpers import entity_registry as er -from homeassistant.util.unit_system import IMPERIAL_SYSTEM from . import init_integration @@ -126,10 +125,8 @@ async def test_sensors(hass): assert entry.unique_id == "JM000000000000000_rear_right_tire_pressure" -async def test_sensors_imperial_units(hass): +async def test_sensors_imperial_units(hass, units_imperial): """Test that the sensors work properly with imperial units.""" - hass.config.units = IMPERIAL_SYSTEM - await init_integration(hass) # Fuel Distance Remaining diff --git a/tests/components/subaru/test_sensor.py b/tests/components/subaru/test_sensor.py index f2a66e7e5e9..145961c0da3 100644 --- a/tests/components/subaru/test_sensor.py +++ b/tests/components/subaru/test_sensor.py @@ -10,7 +10,6 @@ from homeassistant.components.subaru.sensor import ( SENSOR_TYPE, ) from homeassistant.util import slugify -from homeassistant.util.unit_system import IMPERIAL_SYSTEM from .api_responses import ( EXPECTED_STATE_EV_IMPERIAL, @@ -30,10 +29,8 @@ from tests.components.subaru.conftest import ( VEHICLE_NAME = VEHICLE_DATA[TEST_VIN_2_EV][VEHICLE_NAME] -async def test_sensors_ev_imperial(hass, ev_entry): +async def test_sensors_ev_imperial(hass, ev_entry, units_imperial): """Test sensors supporting imperial units.""" - hass.config.units = IMPERIAL_SYSTEM - with patch(MOCK_API_FETCH), patch( MOCK_API_GET_DATA, return_value=VEHICLE_STATUS_EV ): diff --git a/tests/conftest.py b/tests/conftest.py index e0b6d118999..8f89b3afe44 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -269,6 +269,7 @@ def hass(loop, load_registries, hass_storage, request): exceptions = [] hass = loop.run_until_complete(async_test_home_assistant(loop, load_registries)) + orig_units = hass.config.units orig_exception_handler = loop.get_exception_handler() loop.set_exception_handler(exc_handle) @@ -278,6 +279,8 @@ def hass(loop, load_registries, hass_storage, request): # Restore timezone, it is set when creating the hass object dt_util.DEFAULT_TIME_ZONE = orig_tz + # Restore the units as well + hass.config.units = orig_units for ex in exceptions: if (