mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 09:17:53 +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_BRIGHTNESS 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)}")
|
||||
return color_modes
|
||||
|
@ -1943,3 +1943,42 @@ async def test_services_filter_parameters(
|
||||
|
||||
_, data = ent1.last_call("turn_off")
|
||||
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