From 638020f1681a6af132a5c96c8de076512d2c0920 Mon Sep 17 00:00:00 2001 From: Jan-Philipp Benecke Date: Wed, 20 Mar 2024 08:45:50 +0100 Subject: [PATCH] Remove deprecated `hass.components` from group light tests and use fixture (#113862) --- tests/components/group/test_light.py | 249 ++++++++++++++------------- 1 file changed, 129 insertions(+), 120 deletions(-) diff --git a/tests/components/group/test_light.py b/tests/components/group/test_light.py index b279c38d169..d48474955a5 100644 --- a/tests/components/group/test_light.py +++ b/tests/components/group/test_light.py @@ -45,6 +45,7 @@ from homeassistant.helpers import entity_registry as er from homeassistant.setup import async_setup_component from tests.common import async_capture_events, get_fixture_path +from tests.fixtures.pytest.light import MockLight, SetupLightPlatformCallable async def test_default_state( @@ -261,21 +262,21 @@ async def test_state_reporting_all(hass: HomeAssistant) -> None: async def test_brightness( - hass: HomeAssistant, enable_custom_integrations: None + hass: HomeAssistant, setup_light_platform: SetupLightPlatformCallable ) -> None: """Test brightness reporting.""" - platform = getattr(hass.components, "test.light") - platform.init(empty=True) + entities = [ + MockLight("test1", STATE_ON), + MockLight("test2", STATE_OFF), + ] + setup_light_platform(entities) - platform.ENTITIES.append(platform.MockLight("test1", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test2", STATE_OFF)) - - entity0 = platform.ENTITIES[0] + entity0 = entities[0] entity0.supported_color_modes = {ColorMode.BRIGHTNESS} entity0.color_mode = ColorMode.BRIGHTNESS entity0.brightness = 255 - entity1 = platform.ENTITIES[1] + entity1 = entities[1] entity1.supported_color_modes = {ColorMode.BRIGHTNESS} entity1.color_mode = ColorMode.BRIGHTNESS @@ -333,21 +334,23 @@ async def test_brightness( assert state.attributes[ATTR_SUPPORTED_COLOR_MODES] == ["brightness"] -async def test_color_hs(hass: HomeAssistant, enable_custom_integrations: None) -> None: +async def test_color_hs( + hass: HomeAssistant, setup_light_platform: SetupLightPlatformCallable +) -> None: """Test hs color reporting.""" - platform = getattr(hass.components, "test.light") - platform.init(empty=True) + entities = [ + MockLight("test1", STATE_ON), + MockLight("test2", STATE_OFF), + ] + setup_light_platform(entities) - platform.ENTITIES.append(platform.MockLight("test1", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test2", STATE_OFF)) - - entity0 = platform.ENTITIES[0] + entity0 = entities[0] entity0.supported_color_modes = {ColorMode.HS} entity0.color_mode = ColorMode.HS entity0.brightness = 255 entity0.hs_color = (0, 100) - entity1 = platform.ENTITIES[1] + entity1 = entities[1] entity1.supported_color_modes = {ColorMode.HS} entity1.color_mode = ColorMode.HS @@ -403,21 +406,23 @@ async def test_color_hs(hass: HomeAssistant, enable_custom_integrations: None) - assert state.attributes[ATTR_SUPPORTED_FEATURES] == 0 -async def test_color_rgb(hass: HomeAssistant, enable_custom_integrations: None) -> None: +async def test_color_rgb( + hass: HomeAssistant, setup_light_platform: SetupLightPlatformCallable +) -> None: """Test rgbw color reporting.""" - platform = getattr(hass.components, "test.light") - platform.init(empty=True) + entities = [ + MockLight("test1", STATE_ON), + MockLight("test2", STATE_OFF), + ] + setup_light_platform(entities) - platform.ENTITIES.append(platform.MockLight("test1", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test2", STATE_OFF)) - - entity0 = platform.ENTITIES[0] + entity0 = entities[0] entity0.supported_color_modes = {ColorMode.RGB} entity0.color_mode = ColorMode.RGB entity0.brightness = 255 entity0.rgb_color = (0, 64, 128) - entity1 = platform.ENTITIES[1] + entity1 = entities[1] entity1.supported_color_modes = {ColorMode.RGB} entity1.color_mode = ColorMode.RGB entity1.brightness = 255 @@ -476,22 +481,22 @@ async def test_color_rgb(hass: HomeAssistant, enable_custom_integrations: None) async def test_color_rgbw( - hass: HomeAssistant, enable_custom_integrations: None + hass: HomeAssistant, setup_light_platform: SetupLightPlatformCallable ) -> None: """Test rgbw color reporting.""" - platform = getattr(hass.components, "test.light") - platform.init(empty=True) + entities = [ + MockLight("test1", STATE_ON), + MockLight("test2", STATE_OFF), + ] + setup_light_platform(entities) - platform.ENTITIES.append(platform.MockLight("test1", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test2", STATE_OFF)) - - entity0 = platform.ENTITIES[0] + entity0 = entities[0] entity0.supported_color_modes = {ColorMode.RGBW} entity0.color_mode = ColorMode.RGBW entity0.brightness = 255 entity0.rgbw_color = (0, 64, 128, 255) - entity1 = platform.ENTITIES[1] + entity1 = entities[1] entity1.supported_color_modes = {ColorMode.RGBW} entity1.color_mode = ColorMode.RGBW entity1.brightness = 255 @@ -550,22 +555,22 @@ async def test_color_rgbw( async def test_color_rgbww( - hass: HomeAssistant, enable_custom_integrations: None + hass: HomeAssistant, setup_light_platform: SetupLightPlatformCallable ) -> None: """Test rgbww color reporting.""" - platform = getattr(hass.components, "test.light") - platform.init(empty=True) + entities = [ + MockLight("test1", STATE_ON), + MockLight("test2", STATE_OFF), + ] + setup_light_platform(entities) - platform.ENTITIES.append(platform.MockLight("test1", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test2", STATE_OFF)) - - entity0 = platform.ENTITIES[0] + entity0 = entities[0] entity0.supported_color_modes = {ColorMode.RGBWW} entity0.color_mode = ColorMode.RGBWW entity0.brightness = 255 entity0.rgbww_color = (0, 32, 64, 128, 255) - entity1 = platform.ENTITIES[1] + entity1 = entities[1] entity1.supported_color_modes = {ColorMode.RGBWW} entity1.color_mode = ColorMode.RGBWW entity1.brightness = 255 @@ -623,20 +628,22 @@ async def test_color_rgbww( assert state.attributes[ATTR_SUPPORTED_FEATURES] == 0 -async def test_white(hass: HomeAssistant, enable_custom_integrations: None) -> None: +async def test_white( + hass: HomeAssistant, setup_light_platform: SetupLightPlatformCallable +) -> None: """Test white reporting.""" - platform = getattr(hass.components, "test.light") - platform.init(empty=True) + entities = [ + MockLight("test1", STATE_ON), + MockLight("test2", STATE_ON), + ] + setup_light_platform(entities) - platform.ENTITIES.append(platform.MockLight("test1", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test2", STATE_ON)) - - entity0 = platform.ENTITIES[0] + entity0 = entities[0] entity0.supported_color_modes = {ColorMode.HS, ColorMode.WHITE} entity0.color_mode = ColorMode.WHITE entity0.brightness = 255 - entity1 = platform.ENTITIES[1] + entity1 = entities[1] entity1.supported_color_modes = {ColorMode.HS, ColorMode.WHITE} entity1.color_mode = ColorMode.WHITE entity1.brightness = 128 @@ -681,22 +688,22 @@ async def test_white(hass: HomeAssistant, enable_custom_integrations: None) -> N async def test_color_temp( - hass: HomeAssistant, enable_custom_integrations: None + hass: HomeAssistant, setup_light_platform: SetupLightPlatformCallable ) -> None: """Test color temp reporting.""" - platform = getattr(hass.components, "test.light") - platform.init(empty=True) + entities = [ + MockLight("test1", STATE_ON), + MockLight("test2", STATE_OFF), + ] + setup_light_platform(entities) - platform.ENTITIES.append(platform.MockLight("test1", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test2", STATE_OFF)) - - entity0 = platform.ENTITIES[0] + entity0 = entities[0] entity0.supported_color_modes = {ColorMode.COLOR_TEMP} entity0.color_mode = ColorMode.COLOR_TEMP entity0.brightness = 255 entity0.color_temp_kelvin = 2 - entity1 = platform.ENTITIES[1] + entity1 = entities[1] entity1.supported_color_modes = {ColorMode.COLOR_TEMP} entity1.color_mode = ColorMode.COLOR_TEMP @@ -752,25 +759,25 @@ async def test_color_temp( async def test_emulated_color_temp_group( - hass: HomeAssistant, enable_custom_integrations: None + hass: HomeAssistant, setup_light_platform: SetupLightPlatformCallable ) -> None: """Test emulated color temperature in a group.""" - platform = getattr(hass.components, "test.light") - platform.init(empty=True) + entities = [ + MockLight("test1", STATE_ON), + MockLight("test2", STATE_OFF), + MockLight("test3", STATE_OFF), + ] + setup_light_platform(entities) - platform.ENTITIES.append(platform.MockLight("test1", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test2", STATE_OFF)) - platform.ENTITIES.append(platform.MockLight("test3", STATE_OFF)) - - entity0 = platform.ENTITIES[0] + entity0 = entities[0] entity0.supported_color_modes = {ColorMode.COLOR_TEMP} entity0.color_mode = ColorMode.COLOR_TEMP - entity1 = platform.ENTITIES[1] + entity1 = entities[1] entity1.supported_color_modes = {ColorMode.COLOR_TEMP, ColorMode.HS} entity1.color_mode = ColorMode.COLOR_TEMP - entity2 = platform.ENTITIES[2] + entity2 = entities[2] entity2.supported_color_modes = {ColorMode.HS} entity2.color_mode = ColorMode.HS @@ -818,26 +825,26 @@ async def test_emulated_color_temp_group( async def test_min_max_mireds( - hass: HomeAssistant, enable_custom_integrations: None + hass: HomeAssistant, setup_light_platform: SetupLightPlatformCallable ) -> None: """Test min/max mireds reporting. min/max mireds is reported both when light is on and off """ - platform = getattr(hass.components, "test.light") - platform.init(empty=True) + entities = [ + MockLight("test1", STATE_ON), + MockLight("test2", STATE_OFF), + ] + setup_light_platform(entities) - platform.ENTITIES.append(platform.MockLight("test1", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test2", STATE_OFF)) - - entity0 = platform.ENTITIES[0] + entity0 = entities[0] entity0.supported_color_modes = {ColorMode.COLOR_TEMP} entity0.color_mode = ColorMode.COLOR_TEMP entity0.color_temp_kelvin = 2 entity0._attr_min_color_temp_kelvin = 2 entity0._attr_max_color_temp_kelvin = 5 - entity1 = platform.ENTITIES[1] + entity1 = entities[1] entity1.supported_color_modes = {ColorMode.COLOR_TEMP} entity1.color_mode = ColorMode.COLOR_TEMP entity1._attr_min_color_temp_kelvin = 1 @@ -999,25 +1006,25 @@ async def test_effect(hass: HomeAssistant) -> None: async def test_supported_color_modes( - hass: HomeAssistant, enable_custom_integrations: None + hass: HomeAssistant, setup_light_platform: SetupLightPlatformCallable ) -> None: """Test supported_color_modes reporting.""" - platform = getattr(hass.components, "test.light") - platform.init(empty=True) + entities = [ + MockLight("test1", STATE_ON), + MockLight("test2", STATE_OFF), + MockLight("test3", STATE_OFF), + ] + setup_light_platform(entities) - platform.ENTITIES.append(platform.MockLight("test1", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test2", STATE_OFF)) - platform.ENTITIES.append(platform.MockLight("test3", STATE_OFF)) - - entity0 = platform.ENTITIES[0] + entity0 = entities[0] entity0.supported_color_modes = {ColorMode.COLOR_TEMP, ColorMode.HS} entity0.color_mode = ColorMode.UNKNOWN - entity1 = platform.ENTITIES[1] + entity1 = entities[1] entity1.supported_color_modes = {ColorMode.RGBW, ColorMode.RGBWW} entity1.color_mode = ColorMode.UNKNOWN - entity2 = platform.ENTITIES[2] + entity2 = entities[2] entity2.supported_color_modes = {ColorMode.BRIGHTNESS} entity2.color_mode = ColorMode.UNKNOWN @@ -1049,25 +1056,25 @@ async def test_supported_color_modes( async def test_color_mode( - hass: HomeAssistant, enable_custom_integrations: None + hass: HomeAssistant, setup_light_platform: SetupLightPlatformCallable ) -> None: """Test color_mode reporting.""" - platform = getattr(hass.components, "test.light") - platform.init(empty=True) + entities = [ + MockLight("test1", STATE_ON), + MockLight("test2", STATE_OFF), + MockLight("test3", STATE_OFF), + ] + setup_light_platform(entities) - platform.ENTITIES.append(platform.MockLight("test1", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test2", STATE_OFF)) - platform.ENTITIES.append(platform.MockLight("test3", STATE_OFF)) - - entity0 = platform.ENTITIES[0] + entity0 = entities[0] entity0.supported_color_modes = {ColorMode.COLOR_TEMP, ColorMode.HS} entity0.color_mode = ColorMode.COLOR_TEMP - entity1 = platform.ENTITIES[1] + entity1 = entities[1] entity1.supported_color_modes = {ColorMode.COLOR_TEMP, ColorMode.HS} entity1.color_mode = ColorMode.COLOR_TEMP - entity2 = platform.ENTITIES[2] + entity2 = entities[2] entity2.supported_color_modes = {ColorMode.COLOR_TEMP, ColorMode.HS} entity2.color_mode = ColorMode.HS @@ -1124,40 +1131,40 @@ async def test_color_mode( async def test_color_mode2( - hass: HomeAssistant, enable_custom_integrations: None + hass: HomeAssistant, setup_light_platform: SetupLightPlatformCallable ) -> None: """Test onoff color_mode and brightness are given lowest priority.""" - platform = getattr(hass.components, "test.light") - platform.init(empty=True) + entities = [ + MockLight("test1", STATE_ON), + MockLight("test2", STATE_ON), + MockLight("test3", STATE_ON), + MockLight("test4", STATE_ON), + MockLight("test5", STATE_ON), + MockLight("test6", STATE_ON), + ] + setup_light_platform(entities) - platform.ENTITIES.append(platform.MockLight("test1", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test2", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test3", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test4", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test5", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("test6", STATE_ON)) - - entity = platform.ENTITIES[0] + entity = entities[0] entity.supported_color_modes = {ColorMode.COLOR_TEMP} entity.color_mode = ColorMode.COLOR_TEMP - entity = platform.ENTITIES[1] + entity = entities[1] entity.supported_color_modes = {ColorMode.BRIGHTNESS} entity.color_mode = ColorMode.BRIGHTNESS - entity = platform.ENTITIES[2] + entity = entities[2] entity.supported_color_modes = {ColorMode.BRIGHTNESS} entity.color_mode = ColorMode.BRIGHTNESS - entity = platform.ENTITIES[3] + entity = entities[3] entity.supported_color_modes = {ColorMode.ONOFF} entity.color_mode = ColorMode.ONOFF - entity = platform.ENTITIES[4] + entity = entities[4] entity.supported_color_modes = {ColorMode.ONOFF} entity.color_mode = ColorMode.ONOFF - entity = platform.ENTITIES[5] + entity = entities[5] entity.supported_color_modes = {ColorMode.ONOFF} entity.color_mode = ColorMode.ONOFF @@ -1248,29 +1255,31 @@ async def test_supported_features(hass: HomeAssistant) -> None: @pytest.mark.parametrize("supported_color_modes", [ColorMode.HS, ColorMode.RGB]) async def test_service_calls( - hass: HomeAssistant, enable_custom_integrations: None, supported_color_modes + hass: HomeAssistant, + setup_light_platform: SetupLightPlatformCallable, + supported_color_modes, ) -> None: """Test service calls.""" - platform = getattr(hass.components, "test.light") - platform.init(empty=True) + entities = [ + MockLight("bed_light", STATE_ON), + MockLight("ceiling_lights", STATE_OFF), + MockLight("kitchen_lights", STATE_OFF), + ] + setup_light_platform(entities) - platform.ENTITIES.append(platform.MockLight("bed_light", STATE_ON)) - platform.ENTITIES.append(platform.MockLight("ceiling_lights", STATE_OFF)) - platform.ENTITIES.append(platform.MockLight("kitchen_lights", STATE_OFF)) - - entity0 = platform.ENTITIES[0] + entity0 = entities[0] entity0.supported_color_modes = {supported_color_modes} entity0.color_mode = supported_color_modes entity0.brightness = 255 entity0.rgb_color = (0, 64, 128) - entity1 = platform.ENTITIES[1] + entity1 = entities[1] entity1.supported_color_modes = {supported_color_modes} entity1.color_mode = supported_color_modes entity1.brightness = 255 entity1.rgb_color = (255, 128, 64) - entity2 = platform.ENTITIES[2] + entity2 = entities[2] entity2.supported_color_modes = {supported_color_modes} entity2.color_mode = supported_color_modes entity2.brightness = 255