mirror of
https://github.com/home-assistant/core.git
synced 2025-07-27 15:17:35 +00:00
Tweak light.valid_supported_color_modes (#51659)
This commit is contained in:
parent
f09f47f13a
commit
87813ea991
@ -92,7 +92,7 @@ def valid_supported_color_modes(color_modes: Iterable[str]) -> set[str]:
|
|||||||
or COLOR_MODE_UNKNOWN in color_modes
|
or COLOR_MODE_UNKNOWN in color_modes
|
||||||
or (COLOR_MODE_BRIGHTNESS in color_modes and len(color_modes) > 1)
|
or (COLOR_MODE_BRIGHTNESS in color_modes and len(color_modes) > 1)
|
||||||
or (COLOR_MODE_ONOFF in color_modes and len(color_modes) > 1)
|
or (COLOR_MODE_ONOFF in color_modes and len(color_modes) > 1)
|
||||||
or (COLOR_MODE_WHITE in color_modes and len(color_modes) == 1)
|
or (COLOR_MODE_WHITE in color_modes and not color_supported(color_modes))
|
||||||
):
|
):
|
||||||
raise vol.Error(f"Invalid supported_color_modes {sorted(color_modes)}")
|
raise vol.Error(f"Invalid supported_color_modes {sorted(color_modes)}")
|
||||||
return color_modes
|
return color_modes
|
||||||
|
@ -1943,3 +1943,42 @@ async def test_services_filter_parameters(
|
|||||||
|
|
||||||
_, data = ent1.last_call("turn_off")
|
_, data = ent1.last_call("turn_off")
|
||||||
assert data == {}
|
assert data == {}
|
||||||
|
|
||||||
|
|
||||||
|
def test_valid_supported_color_modes():
|
||||||
|
"""Test valid_supported_color_modes."""
|
||||||
|
supported = {light.COLOR_MODE_HS}
|
||||||
|
assert light.valid_supported_color_modes(supported) == supported
|
||||||
|
|
||||||
|
# Supported color modes must not be empty
|
||||||
|
supported = set()
|
||||||
|
with pytest.raises(vol.Error):
|
||||||
|
light.valid_supported_color_modes(supported)
|
||||||
|
|
||||||
|
# COLOR_MODE_WHITE must be combined with a color mode supporting color
|
||||||
|
supported = {light.COLOR_MODE_WHITE}
|
||||||
|
with pytest.raises(vol.Error):
|
||||||
|
light.valid_supported_color_modes(supported)
|
||||||
|
|
||||||
|
supported = {light.COLOR_MODE_WHITE, light.COLOR_MODE_COLOR_TEMP}
|
||||||
|
with pytest.raises(vol.Error):
|
||||||
|
light.valid_supported_color_modes(supported)
|
||||||
|
|
||||||
|
supported = {light.COLOR_MODE_WHITE, light.COLOR_MODE_HS}
|
||||||
|
assert light.valid_supported_color_modes(supported) == supported
|
||||||
|
|
||||||
|
# COLOR_MODE_ONOFF must be the only supported mode
|
||||||
|
supported = {light.COLOR_MODE_ONOFF}
|
||||||
|
assert light.valid_supported_color_modes(supported) == supported
|
||||||
|
|
||||||
|
supported = {light.COLOR_MODE_ONOFF, light.COLOR_MODE_COLOR_TEMP}
|
||||||
|
with pytest.raises(vol.Error):
|
||||||
|
light.valid_supported_color_modes(supported)
|
||||||
|
|
||||||
|
# COLOR_MODE_BRIGHTNESS must be the only supported mode
|
||||||
|
supported = {light.COLOR_MODE_BRIGHTNESS}
|
||||||
|
assert light.valid_supported_color_modes(supported) == supported
|
||||||
|
|
||||||
|
supported = {light.COLOR_MODE_BRIGHTNESS, light.COLOR_MODE_COLOR_TEMP}
|
||||||
|
with pytest.raises(vol.Error):
|
||||||
|
light.valid_supported_color_modes(supported)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user