From 78dedc1f215fce477d90cfaab4da6c7cffa7fd50 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Mon, 9 Feb 2026 13:45:39 +0000 Subject: [PATCH] Adjust --- homeassistant/components/light/__init__.py | 4 ++- tests/components/light/test_init.py | 34 ++++++++++++---------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/homeassistant/components/light/__init__.py b/homeassistant/components/light/__init__.py index 81193821555..b678ca47e58 100644 --- a/homeassistant/components/light/__init__.py +++ b/homeassistant/components/light/__init__.py @@ -74,9 +74,11 @@ def filter_supported_color_modes(color_modes: Iterable[ColorMode]) -> set[ColorM def valid_supported_color_modes( - color_modes: Iterable[ColorMode], + color_modes: Iterable[ColorMode] | None, ) -> set[ColorMode]: """Validate the given color modes.""" + if color_modes is None: + raise vol.Error(f"Invalid supported_color_modes {color_modes}") color_modes = set(color_modes) if ( not color_modes diff --git a/tests/components/light/test_init.py b/tests/components/light/test_init.py index 08f6021d851..747a972b629 100644 --- a/tests/components/light/test_init.py +++ b/tests/components/light/test_init.py @@ -2354,7 +2354,7 @@ def test_filter_supported_color_modes() -> None: @pytest.mark.parametrize( - ("color_mode", "supported_color_modes", "warning_expected"), + ("color_mode", "supported_color_modes", "error_expected"), [ (light.ColorMode.ONOFF, None, True), (light.ColorMode.ONOFF, {light.ColorMode.ONOFF}, False), @@ -2365,7 +2365,7 @@ async def test_report_no_color_modes( caplog: pytest.LogCaptureFixture, color_mode: str, supported_color_modes: set[str], - warning_expected: bool, + error_expected: bool, ) -> None: """Test a light setting no color mode.""" @@ -2378,9 +2378,13 @@ async def test_report_no_color_modes( entity = MockLightEntityEntity() platform = MockEntityPlatform(hass, domain="test", platform_name="test") await platform.async_add_entities([entity]) - entity._async_calculate_state() - expected_warning = "does not set supported color modes" - assert (expected_warning in caplog.text) is warning_expected + raised_error = "" + try: + entity._async_calculate_state() + except vol.Error as err: + raised_error = str(err) + expected_error = "Invalid supported_color_modes" + assert (expected_error in raised_error) is error_expected @pytest.mark.parametrize( @@ -2438,7 +2442,7 @@ async def test_report_invalid_color_mode( @pytest.mark.parametrize( - ("color_mode", "supported_color_modes", "platform_name", "warning_expected"), + ("color_mode", "supported_color_modes", "platform_name", "error_expected"), [ ( light.ColorMode.ONOFF, @@ -2464,12 +2468,6 @@ async def test_report_invalid_color_mode( "test", False, ), - ( - light.ColorMode.ONOFF, - {light.ColorMode.ONOFF, light.ColorMode.BRIGHTNESS}, - "philips_js", # We don't log issues for philips_js - False, - ), ], ) def test_report_invalid_color_modes( @@ -2478,7 +2476,7 @@ def test_report_invalid_color_modes( color_mode: str, supported_color_modes: set[str], platform_name: str, - warning_expected: bool, + error_expected: bool, ) -> None: """Test a light setting an invalid color mode.""" @@ -2490,9 +2488,13 @@ def test_report_invalid_color_modes( platform = MockEntityPlatform(hass, platform_name=platform_name) entity = MockLightEntityEntity() - entity._async_calculate_state() - expected_warning = "sets invalid supported color modes" - assert (expected_warning in caplog.text) is warning_expected + raised_error = "" + try: + entity._async_calculate_state() + except vol.Error as err: + raised_error = str(err) + expected_error = "Invalid supported_color_modes" + assert (expected_error in raised_error) is error_expected @pytest.mark.parametrize(