mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 21:06:19 +00:00
Add support for light color modes (#47720)
* Add support for light color modes * Update tests * Update comments * Fix bugs, add tests * Suppress lint errors * Don't suppress brightness when state is ambiguous * Improve reproduce_state + add tests * Add comment * Change COLOR_MODE_* constants, rename COLOR_MODE_DIMMER to COLOR_MODE_BRIGHTNESS * Fix tests * Tweaks
This commit is contained in:
@@ -7,9 +7,12 @@ import pyzerproc
|
||||
from homeassistant import setup
|
||||
from homeassistant.components.light import (
|
||||
ATTR_BRIGHTNESS,
|
||||
ATTR_COLOR_MODE,
|
||||
ATTR_HS_COLOR,
|
||||
ATTR_RGB_COLOR,
|
||||
ATTR_SUPPORTED_COLOR_MODES,
|
||||
ATTR_XY_COLOR,
|
||||
COLOR_MODE_HS,
|
||||
SCAN_INTERVAL,
|
||||
SUPPORT_BRIGHTNESS,
|
||||
SUPPORT_COLOR,
|
||||
@@ -96,6 +99,7 @@ async def test_init(hass, mock_entry):
|
||||
assert state.state == STATE_OFF
|
||||
assert state.attributes == {
|
||||
ATTR_FRIENDLY_NAME: "LEDBlue-CCDDEEFF",
|
||||
ATTR_SUPPORTED_COLOR_MODES: [COLOR_MODE_HS],
|
||||
ATTR_SUPPORTED_FEATURES: SUPPORT_BRIGHTNESS | SUPPORT_COLOR,
|
||||
ATTR_ICON: "mdi:string-lights",
|
||||
}
|
||||
@@ -104,8 +108,10 @@ async def test_init(hass, mock_entry):
|
||||
assert state.state == STATE_ON
|
||||
assert state.attributes == {
|
||||
ATTR_FRIENDLY_NAME: "LEDBlue-33445566",
|
||||
ATTR_SUPPORTED_COLOR_MODES: [COLOR_MODE_HS],
|
||||
ATTR_SUPPORTED_FEATURES: SUPPORT_BRIGHTNESS | SUPPORT_COLOR,
|
||||
ATTR_ICON: "mdi:string-lights",
|
||||
ATTR_COLOR_MODE: COLOR_MODE_HS,
|
||||
ATTR_BRIGHTNESS: 255,
|
||||
ATTR_HS_COLOR: (221.176, 100.0),
|
||||
ATTR_RGB_COLOR: (0, 80, 255),
|
||||
@@ -272,6 +278,7 @@ async def test_light_update(hass, mock_light):
|
||||
assert state.state == STATE_OFF
|
||||
assert state.attributes == {
|
||||
ATTR_FRIENDLY_NAME: "LEDBlue-CCDDEEFF",
|
||||
ATTR_SUPPORTED_COLOR_MODES: [COLOR_MODE_HS],
|
||||
ATTR_SUPPORTED_FEATURES: SUPPORT_BRIGHTNESS | SUPPORT_COLOR,
|
||||
ATTR_ICON: "mdi:string-lights",
|
||||
}
|
||||
@@ -290,6 +297,7 @@ async def test_light_update(hass, mock_light):
|
||||
assert state.state == STATE_UNAVAILABLE
|
||||
assert state.attributes == {
|
||||
ATTR_FRIENDLY_NAME: "LEDBlue-CCDDEEFF",
|
||||
ATTR_SUPPORTED_COLOR_MODES: [COLOR_MODE_HS],
|
||||
ATTR_SUPPORTED_FEATURES: SUPPORT_BRIGHTNESS | SUPPORT_COLOR,
|
||||
ATTR_ICON: "mdi:string-lights",
|
||||
}
|
||||
@@ -307,6 +315,7 @@ async def test_light_update(hass, mock_light):
|
||||
assert state.state == STATE_OFF
|
||||
assert state.attributes == {
|
||||
ATTR_FRIENDLY_NAME: "LEDBlue-CCDDEEFF",
|
||||
ATTR_SUPPORTED_COLOR_MODES: [COLOR_MODE_HS],
|
||||
ATTR_SUPPORTED_FEATURES: SUPPORT_BRIGHTNESS | SUPPORT_COLOR,
|
||||
ATTR_ICON: "mdi:string-lights",
|
||||
}
|
||||
@@ -324,8 +333,10 @@ async def test_light_update(hass, mock_light):
|
||||
assert state.state == STATE_ON
|
||||
assert state.attributes == {
|
||||
ATTR_FRIENDLY_NAME: "LEDBlue-CCDDEEFF",
|
||||
ATTR_SUPPORTED_COLOR_MODES: [COLOR_MODE_HS],
|
||||
ATTR_SUPPORTED_FEATURES: SUPPORT_BRIGHTNESS | SUPPORT_COLOR,
|
||||
ATTR_ICON: "mdi:string-lights",
|
||||
ATTR_COLOR_MODE: COLOR_MODE_HS,
|
||||
ATTR_BRIGHTNESS: 220,
|
||||
ATTR_HS_COLOR: (261.429, 31.818),
|
||||
ATTR_RGB_COLOR: (202, 173, 255),
|
||||
|
||||
Reference in New Issue
Block a user