Add some tests

This commit is contained in:
G Johansson 2024-09-24 18:01:56 +00:00
parent 3f2292dae4
commit 7f88813ba1
15 changed files with 301 additions and 306 deletions

View File

@ -11,6 +11,7 @@ from homeassistant.components.light import (
ATTR_SUPPORTED_COLOR_MODES,
DOMAIN as LIGHT_DOMAIN,
ColorMode,
LightState,
)
from homeassistant.const import (
ATTR_ENTITY_ID,
@ -18,7 +19,6 @@ from homeassistant.const import (
ATTR_SUPPORTED_FEATURES,
SERVICE_TURN_OFF,
SERVICE_TURN_ON,
STATE_ON,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
@ -43,7 +43,7 @@ async def test_attributes(hass: HomeAssistant) -> None:
await setup_platform(hass, LIGHT_DOMAIN)
state = hass.states.get(DEVICE_ID)
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes.get(ATTR_BRIGHTNESS) == 204
assert state.attributes.get(ATTR_RGB_COLOR) == (0, 63, 255)
assert state.attributes.get(ATTR_COLOR_TEMP) is None

View File

@ -7,8 +7,9 @@ from homeassistant.components.light import (
DOMAIN as LIGHT_DOMAIN,
SERVICE_TURN_OFF,
SERVICE_TURN_ON,
LightState,
)
from homeassistant.const import ATTR_ENTITY_ID, STATE_OFF, STATE_ON
from homeassistant.const import ATTR_ENTITY_ID
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
@ -30,7 +31,7 @@ async def test_light(
light_id = "100"
state = hass.states.get(entity_id)
assert state
assert state.state == STATE_OFF
assert state.state == LightState.OFF
entry = entity_registry.async_get(entity_id)
assert entry
@ -96,7 +97,7 @@ async def test_things_light(
light_id = "204"
state = hass.states.get(entity_id)
assert state
assert state.state == STATE_ON
assert state.state == LightState.ON
entry = entity_registry.async_get(entity_id)
assert entry

View File

@ -9,7 +9,8 @@ from pybalboa.enums import OffOnState, UnknownState
import pytest
from syrupy import SnapshotAssertion
from homeassistant.const import STATE_OFF, STATE_ON, STATE_UNKNOWN, Platform
from homeassistant.components.light import LightState
from homeassistant.const import STATE_UNKNOWN, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
@ -59,17 +60,17 @@ async def test_light(hass: HomeAssistant, client: MagicMock, mock_light) -> None
# check if the initial state is off
state = hass.states.get(ENTITY_LIGHT)
assert state.state == STATE_OFF
assert state.state == LightState.OFF
# test calling turn on
await common.async_turn_on(hass, ENTITY_LIGHT)
state = await client_update(hass, client, ENTITY_LIGHT)
assert state.state == STATE_ON
assert state.state == LightState.ON
# test calling turn off
await common.async_turn_off(hass, ENTITY_LIGHT)
state = await client_update(hass, client, ENTITY_LIGHT)
assert state.state == STATE_OFF
assert state.state == LightState.OFF
async def test_light_unknown_state(

View File

@ -12,14 +12,9 @@ from homeassistant.components.light import (
ATTR_RGBW_COLOR,
ATTR_SUPPORTED_COLOR_MODES,
ColorMode,
LightState,
)
from homeassistant.const import (
SERVICE_TURN_OFF,
SERVICE_TURN_ON,
STATE_OFF,
STATE_ON,
STATE_UNKNOWN,
)
from homeassistant.const import SERVICE_TURN_OFF, SERVICE_TURN_ON, STATE_UNKNOWN
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr
@ -67,7 +62,7 @@ async def test_dimmer_init(
assert color_modes == [ColorMode.BRIGHTNESS]
assert state.attributes[ATTR_BRIGHTNESS] == 65
assert state.state == STATE_ON
assert state.state == LightState.ON
device = device_registry.async_get(entry.device_id)
@ -91,7 +86,7 @@ async def test_dimmer_update(dimmer, hass: HomeAssistant) -> None:
state = hass.states.get(entity_id)
assert state.attributes[ATTR_BRIGHTNESS] == 53
assert state.state == STATE_ON
assert state.state == LightState.ON
async def test_dimmer_on(dimmer, hass: HomeAssistant) -> None:
@ -109,7 +104,7 @@ async def test_dimmer_on(dimmer, hass: HomeAssistant) -> None:
feature_mock.async_update = AsyncMock()
state = hass.states.get(entity_id)
assert state.state == STATE_OFF
assert state.state == LightState.OFF
def turn_on(brightness):
assert brightness == 254
@ -125,7 +120,7 @@ async def test_dimmer_on(dimmer, hass: HomeAssistant) -> None:
)
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 254
@ -144,7 +139,7 @@ async def test_dimmer_on_with_brightness(dimmer, hass: HomeAssistant) -> None:
feature_mock.async_update = AsyncMock()
state = hass.states.get(entity_id)
assert state.state == STATE_OFF
assert state.state == LightState.OFF
def turn_on(brightness):
assert brightness == 202
@ -167,7 +162,7 @@ async def test_dimmer_on_with_brightness(dimmer, hass: HomeAssistant) -> None:
state = hass.states.get(entity_id)
assert state.attributes[ATTR_BRIGHTNESS] == 202
assert state.state == STATE_ON
assert state.state == LightState.ON
async def test_dimmer_off(dimmer, hass: HomeAssistant) -> None:
@ -183,7 +178,7 @@ async def test_dimmer_off(dimmer, hass: HomeAssistant) -> None:
feature_mock.async_update = AsyncMock()
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
def turn_off():
feature_mock.is_on = False
@ -198,7 +193,7 @@ async def test_dimmer_off(dimmer, hass: HomeAssistant) -> None:
)
state = hass.states.get(entity_id)
assert state.state == STATE_OFF
assert state.state == LightState.OFF
assert state.attributes[ATTR_BRIGHTNESS] is None
@ -266,7 +261,7 @@ async def test_wlightbox_s_update(wlightbox_s, hass: HomeAssistant) -> None:
await async_setup_entity(hass, entity_id)
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 0xAB
@ -284,7 +279,7 @@ async def test_wlightbox_s_on(wlightbox_s, hass: HomeAssistant) -> None:
feature_mock.async_update = AsyncMock()
state = hass.states.get(entity_id)
assert state.state == STATE_OFF
assert state.state == LightState.OFF
def turn_on(brightness):
assert brightness == 254
@ -301,7 +296,7 @@ async def test_wlightbox_s_on(wlightbox_s, hass: HomeAssistant) -> None:
state = hass.states.get(entity_id)
assert state.attributes[ATTR_BRIGHTNESS] == 254
assert state.state == STATE_ON
assert state.state == LightState.ON
@pytest.fixture(name="wlightbox")
@ -372,7 +367,7 @@ async def test_wlightbox_update(wlightbox, hass: HomeAssistant) -> None:
state = hass.states.get(entity_id)
assert state.attributes[ATTR_RGBW_COLOR] == (0xFA, 0x00, 0x20, 0x3A)
assert state.state == STATE_ON
assert state.state == LightState.ON
async def test_wlightbox_on_rgbw(wlightbox, hass: HomeAssistant) -> None:
@ -388,7 +383,7 @@ async def test_wlightbox_on_rgbw(wlightbox, hass: HomeAssistant) -> None:
feature_mock.async_update = AsyncMock()
state = hass.states.get(entity_id)
assert state.state == STATE_OFF
assert state.state == LightState.OFF
def turn_on(value):
feature_mock.is_on = True
@ -421,7 +416,7 @@ async def test_wlightbox_on_rgbw(wlightbox, hass: HomeAssistant) -> None:
)
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_RGBW_COLOR] == (0xC1, 0xD2, 0xF3, 0xC7)
@ -438,7 +433,7 @@ async def test_wlightbox_on_to_last_color(wlightbox, hass: HomeAssistant) -> Non
feature_mock.async_update = AsyncMock()
state = hass.states.get(entity_id)
assert state.state == STATE_OFF
assert state.state == LightState.OFF
def turn_on(value):
feature_mock.is_on = True
@ -458,7 +453,7 @@ async def test_wlightbox_on_to_last_color(wlightbox, hass: HomeAssistant) -> Non
state = hass.states.get(entity_id)
assert state.attributes[ATTR_RGBW_COLOR] == (0xF1, 0xE2, 0xD3, 0xE4)
assert state.state == STATE_ON
assert state.state == LightState.ON
async def test_wlightbox_off(wlightbox, hass: HomeAssistant) -> None:
@ -474,7 +469,7 @@ async def test_wlightbox_off(wlightbox, hass: HomeAssistant) -> None:
feature_mock.async_update = AsyncMock()
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
def turn_off():
feature_mock.is_on = False
@ -492,7 +487,7 @@ async def test_wlightbox_off(wlightbox, hass: HomeAssistant) -> None:
state = hass.states.get(entity_id)
assert state.attributes[ATTR_RGBW_COLOR] is None
assert state.state == STATE_OFF
assert state.state == LightState.OFF
@pytest.mark.parametrize("feature", ALL_LIGHT_FIXTURES, indirect=["feature"])
@ -549,7 +544,7 @@ async def test_wlightbox_on_effect(wlightbox, hass: HomeAssistant) -> None:
feature_mock.async_update = AsyncMock()
state = hass.states.get(entity_id)
assert state.state == STATE_OFF
assert state.state == LightState.OFF
def turn_on(value):
feature_mock.is_on = True

View File

@ -26,14 +26,9 @@ from homeassistant.components.light import (
SERVICE_TURN_ON,
ColorMode,
LightEntityFeature,
LightState,
)
from homeassistant.const import (
ATTR_ENTITY_ID,
ATTR_SUPPORTED_FEATURES,
STATE_OFF,
STATE_ON,
Platform,
)
from homeassistant.const import ATTR_ENTITY_ID, ATTR_SUPPORTED_FEATURES, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
@ -333,10 +328,10 @@ async def test_light_state_change(
light_ws_data: WebsocketDataType,
) -> None:
"""Verify light can change state on websocket event."""
assert hass.states.get("light.hue_go").state == STATE_ON
assert hass.states.get("light.hue_go").state == LightState.ON
await light_ws_data({"state": {"on": False}})
assert hass.states.get("light.hue_go").state == STATE_OFF
assert hass.states.get("light.hue_go").state == LightState.OFF
@pytest.mark.parametrize(
@ -1158,7 +1153,7 @@ async def test_verify_group_supported_features(hass: HomeAssistant) -> None:
assert len(hass.states.async_all()) == 4
group_state = hass.states.get("light.group")
assert group_state.state == STATE_ON
assert group_state.state == LightState.ON
assert group_state.attributes[ATTR_COLOR_MODE] == ColorMode.COLOR_TEMP
assert (
group_state.attributes[ATTR_SUPPORTED_FEATURES]
@ -1275,7 +1270,7 @@ async def test_verify_group_color_mode_fallback(
) -> None:
"""Test that group supported features reflect what included lights support."""
group_state = hass.states.get("light.opbergruimte")
assert group_state.state == STATE_OFF
assert group_state.state == LightState.OFF
assert group_state.attributes[ATTR_COLOR_MODE] is None
await mock_websocket_data(
@ -1300,5 +1295,5 @@ async def test_verify_group_color_mode_fallback(
}
)
group_state = hass.states.get("light.opbergruimte")
assert group_state.state == STATE_ON
assert group_state.state == LightState.ON
assert group_state.attributes[ATTR_COLOR_MODE] is ColorMode.BRIGHTNESS

View File

@ -19,8 +19,9 @@ from homeassistant.components.light import (
DOMAIN as LIGHT_DOMAIN,
SERVICE_TURN_OFF,
SERVICE_TURN_ON,
LightState,
)
from homeassistant.const import ATTR_ENTITY_ID, STATE_OFF, STATE_ON, Platform
from homeassistant.const import ATTR_ENTITY_ID, Platform
from homeassistant.core import HomeAssistant
from homeassistant.setup import async_setup_component
@ -56,7 +57,7 @@ async def test_state_attributes(hass: HomeAssistant) -> None:
)
state = hass.states.get(ENTITY_LIGHT)
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes.get(ATTR_XY_COLOR) == (0.4, 0.4)
assert state.attributes.get(ATTR_BRIGHTNESS) == 25
assert state.attributes.get(ATTR_RGB_COLOR) == (255, 234, 164)
@ -108,14 +109,14 @@ async def test_turn_off(hass: HomeAssistant) -> None:
)
state = hass.states.get(ENTITY_LIGHT)
assert state.state == STATE_ON
assert state.state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN, SERVICE_TURN_OFF, {ATTR_ENTITY_ID: ENTITY_LIGHT}, blocking=True
)
state = hass.states.get(ENTITY_LIGHT)
assert state.state == STATE_OFF
assert state.state == LightState.OFF
async def test_turn_off_without_entity_id(hass: HomeAssistant) -> None:
@ -125,11 +126,11 @@ async def test_turn_off_without_entity_id(hass: HomeAssistant) -> None:
)
state = hass.states.get(ENTITY_LIGHT)
assert state.state == STATE_ON
assert state.state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN, SERVICE_TURN_OFF, {ATTR_ENTITY_ID: "all"}, blocking=True
)
state = hass.states.get(ENTITY_LIGHT)
assert state.state == STATE_OFF
assert state.state == LightState.OFF

View File

@ -4,13 +4,15 @@ from unittest.mock import patch
from syrupy.assertion import SnapshotAssertion
from homeassistant.components.light import ATTR_BRIGHTNESS, DOMAIN as LIGHT_DOMAIN
from homeassistant.components.light import (
ATTR_BRIGHTNESS,
DOMAIN as LIGHT_DOMAIN,
LightState,
)
from homeassistant.const import (
ATTR_ENTITY_ID,
SERVICE_TURN_OFF,
SERVICE_TURN_ON,
STATE_OFF,
STATE_ON,
STATE_UNAVAILABLE,
)
from homeassistant.core import HomeAssistant
@ -41,11 +43,11 @@ async def test_light_without_binary_sensor(
test_gateway.publisher.dispatch("Test", ("devolo.Dimmer:Test", 0.0))
await hass.async_block_till_done()
state = hass.states.get(f"{LIGHT_DOMAIN}.test")
assert state.state == STATE_OFF
assert state.state == LightState.OFF
test_gateway.publisher.dispatch("Test", ("devolo.Dimmer:Test", 100.0))
await hass.async_block_till_done()
state = hass.states.get(f"{LIGHT_DOMAIN}.test")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 255
# Test setting brightness
@ -109,11 +111,11 @@ async def test_light_with_binary_sensor(
test_gateway.publisher.dispatch("Test", ("devolo.Dimmer:Test", 0.0))
await hass.async_block_till_done()
state = hass.states.get(f"{LIGHT_DOMAIN}.test")
assert state.state == STATE_OFF
assert state.state == LightState.OFF
test_gateway.publisher.dispatch("Test", ("devolo.Dimmer:Test", 100.0))
await hass.async_block_till_done()
state = hass.states.get(f"{LIGHT_DOMAIN}.test")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 255
# Test setting brightness

View File

@ -10,12 +10,11 @@ from homeassistant.components.light import (
ATTR_COLOR_MODE,
ATTR_SUPPORTED_COLOR_MODES,
ColorMode,
LightState,
)
from homeassistant.const import (
ATTR_FRIENDLY_NAME,
ATTR_SUPPORTED_FEATURES,
STATE_OFF,
STATE_ON,
STATE_UNAVAILABLE,
)
from homeassistant.core import HomeAssistant, State
@ -57,7 +56,7 @@ async def test_light_setup(hass: HomeAssistant, mock_device) -> None:
assert entity_state.attributes[ATTR_FRIENDLY_NAME] == mock_device.name
assert entity_state.attributes[ATTR_SUPPORTED_COLOR_MODES] == [ColorMode.BRIGHTNESS]
assert entity_state.attributes[ATTR_SUPPORTED_FEATURES] == 0
assert entity_state.state == STATE_OFF
assert entity_state.state == LightState.OFF
await run_service_tests(
hass,
mock_device,
@ -93,12 +92,12 @@ async def test_light_restore_state(hass: HomeAssistant, mock_device) -> None:
"""Test restore from cache."""
mock_restore_cache(
hass,
[State("light.name", STATE_ON, attributes={ATTR_BRIGHTNESS: 77})],
[State("light.name", LightState.ON, attributes={ATTR_BRIGHTNESS: 77})],
)
await create_entity_from_device(hass, mock_device)
mock_device.init_level.assert_called_once_with(77)
entity_state = hass.states.get("light.name")
assert entity_state.state == STATE_ON
assert entity_state.state == LightState.ON
assert entity_state.attributes[ATTR_BRIGHTNESS] == 77
assert entity_state.attributes[ATTR_COLOR_MODE] == ColorMode.BRIGHTNESS
@ -112,4 +111,4 @@ async def test_light_restore_state_bad_cache(hass: HomeAssistant, mock_device) -
await create_entity_from_device(hass, mock_device)
mock_device.init_level.assert_not_called()
entity_state = hass.states.get("light.name")
assert entity_state.state == STATE_OFF
assert entity_state.state == LightState.OFF

View File

@ -12,12 +12,12 @@ from homeassistant.components.light import (
ATTR_COLOR_TEMP,
ATTR_HS_COLOR,
DOMAIN as LIGHT_DOMAIN,
LightState,
)
from homeassistant.const import (
ATTR_ENTITY_ID,
SERVICE_TURN_OFF,
SERVICE_TURN_ON,
STATE_ON,
STATE_UNAVAILABLE,
)
from homeassistant.core import HomeAssistant
@ -66,7 +66,7 @@ async def test_light_change_state_temperature(
) -> None:
"""Test the change of state of a Elgato Key Light device."""
assert (state := hass.states.get("light.frenck"))
assert state.state == STATE_ON
assert state.state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,

View File

@ -7,7 +7,7 @@ from aioesphomeapi import (
APIVersion,
LightColorCapability,
LightInfo,
LightState,
LightState as ESPHomeLightState,
)
import pytest
@ -34,8 +34,8 @@ from homeassistant.components.light import (
FLASH_SHORT,
SERVICE_TURN_OFF,
SERVICE_TURN_ON,
STATE_ON,
ColorMode,
LightState,
)
from homeassistant.const import ATTR_ENTITY_ID
from homeassistant.core import HomeAssistant
@ -57,7 +57,7 @@ async def test_light_on_off(
supported_color_modes=[LightColorCapability.ON_OFF],
)
]
states = [LightState(key=1, state=True)]
states = [ESPHomeLightState(key=1, state=True)]
user_service = []
await mock_generic_device_entry(
mock_client=mock_client,
@ -67,7 +67,7 @@ async def test_light_on_off(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,
@ -97,7 +97,7 @@ async def test_light_brightness(
supported_color_modes=[LightColorCapability.BRIGHTNESS],
)
]
states = [LightState(key=1, state=True, brightness=100)]
states = [ESPHomeLightState(key=1, state=True, brightness=100)]
user_service = []
await mock_generic_device_entry(
mock_client=mock_client,
@ -107,7 +107,7 @@ async def test_light_brightness(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,
@ -215,7 +215,7 @@ async def test_light_brightness_on_off(
],
)
]
states = [LightState(key=1, state=True, brightness=100)]
states = [ESPHomeLightState(key=1, state=True, brightness=100)]
user_service = []
await mock_generic_device_entry(
mock_client=mock_client,
@ -225,7 +225,7 @@ async def test_light_brightness_on_off(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,
@ -285,7 +285,7 @@ async def test_light_legacy_white_converted_to_brightness(
],
)
]
states = [LightState(key=1, state=True, brightness=100)]
states = [ESPHomeLightState(key=1, state=True, brightness=100)]
user_service = []
await mock_generic_device_entry(
mock_client=mock_client,
@ -295,7 +295,7 @@ async def test_light_legacy_white_converted_to_brightness(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,
@ -343,7 +343,7 @@ async def test_light_legacy_white_with_rgb(
supported_color_modes=[color_mode, color_mode_2],
)
]
states = [LightState(key=1, state=True, brightness=100)]
states = [ESPHomeLightState(key=1, state=True, brightness=100)]
user_service = []
await mock_generic_device_entry(
mock_client=mock_client,
@ -353,7 +353,7 @@ async def test_light_legacy_white_with_rgb(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_SUPPORTED_COLOR_MODES] == [
ColorMode.RGB,
ColorMode.WHITE,
@ -397,7 +397,7 @@ async def test_light_brightness_on_off_with_unknown_color_mode(
],
)
]
states = [LightState(key=1, state=True, brightness=100)]
states = [ESPHomeLightState(key=1, state=True, brightness=100)]
user_service = []
await mock_generic_device_entry(
mock_client=mock_client,
@ -407,7 +407,7 @@ async def test_light_brightness_on_off_with_unknown_color_mode(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,
@ -468,7 +468,7 @@ async def test_light_on_and_brightness(
],
)
]
states = [LightState(key=1, state=True, brightness=100)]
states = [ESPHomeLightState(key=1, state=True, brightness=100)]
user_service = []
await mock_generic_device_entry(
mock_client=mock_client,
@ -478,7 +478,7 @@ async def test_light_on_and_brightness(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,
@ -518,7 +518,7 @@ async def test_rgb_color_temp_light(
supported_color_modes=color_modes,
)
]
states = [LightState(key=1, state=True, brightness=100)]
states = [ESPHomeLightState(key=1, state=True, brightness=100)]
user_service = []
await mock_generic_device_entry(
mock_client=mock_client,
@ -528,7 +528,7 @@ async def test_rgb_color_temp_light(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,
@ -606,7 +606,9 @@ async def test_light_rgb(
],
)
]
states = [LightState(key=1, state=True, brightness=100, red=1, green=1, blue=1)]
states = [
ESPHomeLightState(key=1, state=True, brightness=100, red=1, green=1, blue=1)
]
user_service = []
await mock_generic_device_entry(
mock_client=mock_client,
@ -616,7 +618,7 @@ async def test_light_rgb(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,
@ -725,7 +727,7 @@ async def test_light_rgbw(
)
]
states = [
LightState(
ESPHomeLightState(
key=1,
state=True,
brightness=100,
@ -748,7 +750,7 @@ async def test_light_rgbw(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_SUPPORTED_COLOR_MODES] == [ColorMode.RGBW]
assert state.attributes[ATTR_COLOR_MODE] == ColorMode.RGBW
@ -892,7 +894,7 @@ async def test_light_rgbww_with_cold_warm_white_support(
)
]
states = [
LightState(
ESPHomeLightState(
key=1,
state=True,
color_brightness=1,
@ -919,7 +921,7 @@ async def test_light_rgbww_with_cold_warm_white_support(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_SUPPORTED_COLOR_MODES] == [ColorMode.RGBWW]
assert state.attributes[ATTR_COLOR_MODE] == ColorMode.RGBWW
assert state.attributes[ATTR_RGBWW_COLOR] == (255, 255, 255, 255, 255)
@ -1131,7 +1133,7 @@ async def test_light_rgbww_without_cold_warm_white_support(
)
]
states = [
LightState(
ESPHomeLightState(
key=1,
state=True,
color_brightness=1,
@ -1156,7 +1158,7 @@ async def test_light_rgbww_without_cold_warm_white_support(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_SUPPORTED_COLOR_MODES] == [ColorMode.RGBWW]
assert state.attributes[ATTR_COLOR_MODE] == ColorMode.RGBWW
assert state.attributes[ATTR_RGBWW_COLOR] == (255, 255, 255, 255, 0)
@ -1359,7 +1361,7 @@ async def test_light_color_temp(
)
]
states = [
LightState(
ESPHomeLightState(
key=1,
state=True,
brightness=100,
@ -1376,7 +1378,7 @@ async def test_light_color_temp(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_MIN_MIREDS] == 153
@ -1434,7 +1436,7 @@ async def test_light_color_temp_no_mireds_set(
)
]
states = [
LightState(
ESPHomeLightState(
key=1,
state=True,
brightness=100,
@ -1451,7 +1453,7 @@ async def test_light_color_temp_no_mireds_set(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_MIN_MIREDS] is None
@ -1531,7 +1533,7 @@ async def test_light_color_temp_legacy(
)
]
states = [
LightState(
ESPHomeLightState(
key=1,
state=True,
brightness=100,
@ -1553,7 +1555,7 @@ async def test_light_color_temp_legacy(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_COLOR_MODE] == ColorMode.COLOR_TEMP
@ -1617,7 +1619,7 @@ async def test_light_rgb_legacy(
)
]
states = [
LightState(
ESPHomeLightState(
key=1,
state=True,
brightness=100,
@ -1639,7 +1641,7 @@ async def test_light_rgb_legacy(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_SUPPORTED_COLOR_MODES] == [ColorMode.RGB]
assert attributes[ATTR_COLOR_MODE] == ColorMode.RGB
@ -1707,7 +1709,7 @@ async def test_light_effects(
],
)
]
states = [LightState(key=1, state=True, brightness=100)]
states = [ESPHomeLightState(key=1, state=True, brightness=100)]
user_service = []
await mock_generic_device_entry(
mock_client=mock_client,
@ -1717,7 +1719,7 @@ async def test_light_effects(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_EFFECT_LIST] == ["effect1", "effect2"]
await hass.services.async_call(
@ -1762,7 +1764,7 @@ async def test_only_cold_warm_white_support(
)
]
states = [
LightState(
ESPHomeLightState(
key=1,
state=True,
color_brightness=1,
@ -1784,7 +1786,7 @@ async def test_only_cold_warm_white_support(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_SUPPORTED_COLOR_MODES] == [ColorMode.COLOR_TEMP]
assert state.attributes[ATTR_COLOR_MODE] == ColorMode.COLOR_TEMP
assert state.attributes[ATTR_COLOR_TEMP_KELVIN] == 0
@ -1853,7 +1855,7 @@ async def test_light_no_color_modes(
supported_color_modes=[color_mode],
)
]
states = [LightState(key=1, state=True, brightness=100)]
states = [ESPHomeLightState(key=1, state=True, brightness=100)]
user_service = []
await mock_generic_device_entry(
mock_client=mock_client,
@ -1863,7 +1865,7 @@ async def test_light_no_color_modes(
)
state = hass.states.get("light.test_mylight")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_SUPPORTED_COLOR_MODES] == [ColorMode.ONOFF]
await hass.services.async_call(

View File

@ -52,6 +52,7 @@ from homeassistant.components.light import (
ATTR_WHITE,
DOMAIN as LIGHT_DOMAIN,
ColorMode,
LightState,
)
from homeassistant.const import (
ATTR_ENTITY_ID,
@ -59,8 +60,6 @@ from homeassistant.const import (
CONF_HOST,
CONF_MODE,
CONF_NAME,
STATE_OFF,
STATE_ON,
STATE_UNAVAILABLE,
)
from homeassistant.core import HomeAssistant
@ -100,7 +99,7 @@ async def test_light_unique_id(
entity_id = "light.bulb_rgbcw_ddeeff"
assert entity_registry.async_get(entity_id).unique_id == MAC_ADDRESS
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
async def test_light_goes_unavailable_and_recovers(
@ -121,7 +120,7 @@ async def test_light_goes_unavailable_and_recovers(
entity_id = "light.bulb_rgbcw_ddeeff"
assert entity_registry.async_get(entity_id).unique_id == MAC_ADDRESS
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
now = utcnow()
bulb.async_update = AsyncMock(side_effect=RuntimeError)
@ -135,7 +134,7 @@ async def test_light_goes_unavailable_and_recovers(
async_fire_time_changed(hass, now + timedelta(seconds=i))
await hass.async_block_till_done()
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
async def test_light_mac_address_not_found(
@ -154,7 +153,7 @@ async def test_light_mac_address_not_found(
entity_id = "light.bulb_rgbcw_ddeeff"
assert entity_registry.async_get(entity_id).unique_id == config_entry.entry_id
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
@pytest.mark.parametrize(
@ -215,7 +214,7 @@ async def test_rgb_light(hass: HomeAssistant) -> None:
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_BRIGHTNESS] == 128
assert attributes[ATTR_COLOR_MODE] == "rgb"
@ -229,7 +228,7 @@ async def test_rgb_light(hass: HomeAssistant) -> None:
bulb.async_turn_off.assert_called_once()
await async_mock_device_turn_off(hass, bulb)
assert hass.states.get(entity_id).state == STATE_OFF
assert hass.states.get(entity_id).state == LightState.OFF
bulb.brightness = 0
await hass.services.async_call(
@ -256,7 +255,7 @@ async def test_rgb_light(hass: HomeAssistant) -> None:
bulb.async_set_brightness.assert_called_with(100)
bulb.async_set_brightness.reset_mock()
await async_mock_device_turn_on(hass, bulb)
assert hass.states.get(entity_id).state == STATE_ON
assert hass.states.get(entity_id).state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,
@ -321,7 +320,7 @@ async def test_rgb_light_auto_on(hass: HomeAssistant) -> None:
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_BRIGHTNESS] == 128
assert attributes[ATTR_COLOR_MODE] == ColorMode.RGB
@ -335,7 +334,7 @@ async def test_rgb_light_auto_on(hass: HomeAssistant) -> None:
bulb.async_turn_off.assert_called_once()
await async_mock_device_turn_off(hass, bulb)
assert hass.states.get(entity_id).state == STATE_OFF
assert hass.states.get(entity_id).state == LightState.OFF
bulb.brightness = 0
await hass.services.async_call(
@ -375,7 +374,7 @@ async def test_rgb_light_auto_on(hass: HomeAssistant) -> None:
)
bulb.async_turn_on.assert_called_once()
await async_mock_device_turn_on(hass, bulb)
assert hass.states.get(entity_id).state == STATE_ON
assert hass.states.get(entity_id).state == LightState.ON
bulb.async_turn_on.reset_mock()
await hass.services.async_call(
@ -454,7 +453,7 @@ async def test_rgbw_light_auto_on(hass: HomeAssistant) -> None:
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_BRIGHTNESS] == 128
assert attributes[ATTR_COLOR_MODE] == ColorMode.RGBW
@ -468,7 +467,7 @@ async def test_rgbw_light_auto_on(hass: HomeAssistant) -> None:
bulb.async_turn_off.assert_called_once()
await async_mock_device_turn_off(hass, bulb)
assert hass.states.get(entity_id).state == STATE_OFF
assert hass.states.get(entity_id).state == LightState.OFF
bulb.brightness = 0
await hass.services.async_call(
@ -490,7 +489,7 @@ async def test_rgbw_light_auto_on(hass: HomeAssistant) -> None:
)
bulb.async_turn_on.assert_called_once()
await async_mock_device_turn_on(hass, bulb)
assert hass.states.get(entity_id).state == STATE_ON
assert hass.states.get(entity_id).state == LightState.ON
bulb.async_turn_on.reset_mock()
await hass.services.async_call(
@ -589,7 +588,7 @@ async def test_rgbww_light_auto_on(hass: HomeAssistant) -> None:
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_BRIGHTNESS] == 128
assert attributes[ATTR_COLOR_MODE] == ColorMode.RGBWW
@ -603,7 +602,7 @@ async def test_rgbww_light_auto_on(hass: HomeAssistant) -> None:
bulb.async_turn_off.assert_called_once()
await async_mock_device_turn_off(hass, bulb)
assert hass.states.get(entity_id).state == STATE_OFF
assert hass.states.get(entity_id).state == LightState.OFF
bulb.brightness = 0
await hass.services.async_call(
@ -625,7 +624,7 @@ async def test_rgbww_light_auto_on(hass: HomeAssistant) -> None:
)
bulb.async_turn_on.assert_called_once()
await async_mock_device_turn_on(hass, bulb)
assert hass.states.get(entity_id).state == STATE_ON
assert hass.states.get(entity_id).state == LightState.ON
bulb.async_turn_on.reset_mock()
await hass.services.async_call(
@ -706,7 +705,7 @@ async def test_rgb_cct_light(hass: HomeAssistant) -> None:
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_BRIGHTNESS] == 128
assert attributes[ATTR_COLOR_MODE] == "rgb"
@ -720,7 +719,7 @@ async def test_rgb_cct_light(hass: HomeAssistant) -> None:
bulb.async_turn_off.assert_called_once()
await async_mock_device_turn_off(hass, bulb)
assert hass.states.get(entity_id).state == STATE_OFF
assert hass.states.get(entity_id).state == LightState.OFF
await hass.services.async_call(
LIGHT_DOMAIN, "turn_on", {ATTR_ENTITY_ID: entity_id}, blocking=True
@ -772,7 +771,7 @@ async def test_rgb_cct_light(hass: HomeAssistant) -> None:
)
await async_mock_device_turn_on(hass, bulb)
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_BRIGHTNESS] == 128
assert attributes[ATTR_COLOR_MODE] == "color_temp"
@ -829,7 +828,7 @@ async def test_rgbw_light_cold_white(hass: HomeAssistant) -> None:
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_BRIGHTNESS] == 128
assert attributes[ATTR_COLOR_MODE] == "rgbw"
@ -843,7 +842,7 @@ async def test_rgbw_light_cold_white(hass: HomeAssistant) -> None:
bulb.async_turn_off.assert_called_once()
await async_mock_device_turn_off(hass, bulb)
assert hass.states.get(entity_id).state == STATE_OFF
assert hass.states.get(entity_id).state == LightState.OFF
await hass.services.async_call(
LIGHT_DOMAIN, "turn_on", {ATTR_ENTITY_ID: entity_id}, blocking=True
@ -861,7 +860,7 @@ async def test_rgbw_light_cold_white(hass: HomeAssistant) -> None:
bulb.async_set_brightness.assert_called_with(100)
bulb.async_set_brightness.reset_mock()
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,
@ -935,7 +934,7 @@ async def test_rgbw_light_warm_white(hass: HomeAssistant) -> None:
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_BRIGHTNESS] == 128
assert attributes[ATTR_COLOR_MODE] == "rgbw"
@ -949,7 +948,7 @@ async def test_rgbw_light_warm_white(hass: HomeAssistant) -> None:
bulb.async_turn_off.assert_called_once()
await async_mock_device_turn_off(hass, bulb)
assert hass.states.get(entity_id).state == STATE_OFF
assert hass.states.get(entity_id).state == LightState.OFF
await hass.services.async_call(
LIGHT_DOMAIN, "turn_on", {ATTR_ENTITY_ID: entity_id}, blocking=True
@ -967,7 +966,7 @@ async def test_rgbw_light_warm_white(hass: HomeAssistant) -> None:
bulb.async_set_brightness.assert_called_with(100)
bulb.async_set_brightness.reset_mock()
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,
@ -1073,7 +1072,7 @@ async def test_rgb_or_w_light(hass: HomeAssistant) -> None:
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_BRIGHTNESS] == 128
assert attributes[ATTR_COLOR_MODE] == "rgb"
@ -1087,7 +1086,7 @@ async def test_rgb_or_w_light(hass: HomeAssistant) -> None:
bulb.async_turn_off.assert_called_once()
await async_mock_device_turn_off(hass, bulb)
assert hass.states.get(entity_id).state == STATE_OFF
assert hass.states.get(entity_id).state == LightState.OFF
await hass.services.async_call(
LIGHT_DOMAIN, "turn_on", {ATTR_ENTITY_ID: entity_id}, blocking=True
@ -1105,7 +1104,7 @@ async def test_rgb_or_w_light(hass: HomeAssistant) -> None:
bulb.async_set_brightness.assert_called_with(100)
bulb.async_set_brightness.reset_mock()
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,
@ -1184,7 +1183,7 @@ async def test_rgbcw_light(hass: HomeAssistant) -> None:
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_BRIGHTNESS] == 128
assert attributes[ATTR_COLOR_MODE] == "rgbww"
@ -1198,7 +1197,7 @@ async def test_rgbcw_light(hass: HomeAssistant) -> None:
bulb.async_turn_off.assert_called_once()
await async_mock_device_turn_off(hass, bulb)
assert hass.states.get(entity_id).state == STATE_OFF
assert hass.states.get(entity_id).state == LightState.OFF
await hass.services.async_call(
LIGHT_DOMAIN, "turn_on", {ATTR_ENTITY_ID: entity_id}, blocking=True
@ -1309,7 +1308,7 @@ async def test_rgbcw_light(hass: HomeAssistant) -> None:
bulb.rgb = (MIN_RGB_BRIGHTNESS, MIN_RGB_BRIGHTNESS, MIN_RGB_BRIGHTNESS)
await async_mock_device_turn_on(hass, bulb)
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_COLOR_MODE] == ColorMode.RGBWW
assert state.attributes[ATTR_BRIGHTNESS] == 1
@ -1343,7 +1342,7 @@ async def test_white_light(hass: HomeAssistant) -> None:
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_BRIGHTNESS] == 128
assert attributes[ATTR_COLOR_MODE] == "brightness"
@ -1356,7 +1355,7 @@ async def test_white_light(hass: HomeAssistant) -> None:
bulb.async_turn_off.assert_called_once()
await async_mock_device_turn_off(hass, bulb)
assert hass.states.get(entity_id).state == STATE_OFF
assert hass.states.get(entity_id).state == LightState.OFF
await hass.services.async_call(
LIGHT_DOMAIN, "turn_on", {ATTR_ENTITY_ID: entity_id}, blocking=True
@ -1394,7 +1393,7 @@ async def test_no_color_modes(hass: HomeAssistant) -> None:
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_COLOR_MODE] == "onoff"
assert ATTR_EFFECT_LIST in attributes # single channel now supports effects
@ -1405,7 +1404,7 @@ async def test_no_color_modes(hass: HomeAssistant) -> None:
bulb.async_turn_off.assert_called_once()
await async_mock_device_turn_off(hass, bulb)
assert hass.states.get(entity_id).state == STATE_OFF
assert hass.states.get(entity_id).state == LightState.OFF
await hass.services.async_call(
LIGHT_DOMAIN, "turn_on", {ATTR_ENTITY_ID: entity_id}, blocking=True
@ -1438,7 +1437,7 @@ async def test_rgb_light_custom_effects(hass: HomeAssistant) -> None:
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_BRIGHTNESS] == 128
assert attributes[ATTR_COLOR_MODE] == "rgb"
@ -1452,7 +1451,7 @@ async def test_rgb_light_custom_effects(hass: HomeAssistant) -> None:
bulb.async_turn_off.assert_called_once()
await async_mock_device_turn_off(hass, bulb)
await hass.async_block_till_done()
assert hass.states.get(entity_id).state == STATE_OFF
assert hass.states.get(entity_id).state == LightState.OFF
await hass.services.async_call(
LIGHT_DOMAIN,
@ -1468,7 +1467,7 @@ async def test_rgb_light_custom_effects(hass: HomeAssistant) -> None:
await async_mock_device_turn_on(hass, bulb)
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_EFFECT] == "custom"
@ -1486,7 +1485,7 @@ async def test_rgb_light_custom_effects(hass: HomeAssistant) -> None:
await async_mock_device_turn_on(hass, bulb)
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_EFFECT] == "custom"
@ -1520,7 +1519,7 @@ async def test_rgb_light_custom_effects_invalid_colors(
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_BRIGHTNESS] == 128
assert attributes[ATTR_COLOR_MODE] == "rgb"
@ -1549,7 +1548,7 @@ async def test_rgb_light_custom_effect_via_service(
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_BRIGHTNESS] == 128
assert attributes[ATTR_COLOR_MODE] == "rgb"
@ -1563,7 +1562,7 @@ async def test_rgb_light_custom_effect_via_service(
bulb.async_turn_off.assert_called_once()
await async_mock_device_turn_off(hass, bulb)
assert hass.states.get(entity_id).state == STATE_OFF
assert hass.states.get(entity_id).state == LightState.OFF
await hass.services.async_call(
DOMAIN,
@ -1631,7 +1630,7 @@ async def test_addressable_light(hass: HomeAssistant) -> None:
entity_id = "light.bulb_rgbcw_ddeeff"
state = hass.states.get(entity_id)
assert state.state == STATE_ON
assert state.state == LightState.ON
attributes = state.attributes
assert attributes[ATTR_COLOR_MODE] == "onoff"
assert ATTR_EFFECT_LIST in attributes
@ -1643,7 +1642,7 @@ async def test_addressable_light(hass: HomeAssistant) -> None:
bulb.async_turn_off.assert_called_once()
await async_mock_device_turn_off(hass, bulb)
assert hass.states.get(entity_id).state == STATE_OFF
assert hass.states.get(entity_id).state == LightState.OFF
await hass.services.async_call(
LIGHT_DOMAIN, "turn_on", {ATTR_ENTITY_ID: entity_id}, blocking=True

View File

@ -9,8 +9,9 @@ from homeassistant.components.light import (
ATTR_HS_COLOR,
DOMAIN as LIGHT_DOMAIN,
SERVICE_TURN_ON,
LightState,
)
from homeassistant.const import ATTR_ENTITY_ID, SERVICE_TURN_OFF, STATE_OFF, STATE_ON
from homeassistant.const import ATTR_ENTITY_ID, SERVICE_TURN_OFF
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
@ -34,7 +35,7 @@ async def test_light_get_state(
entity_id = "light.lightbulb"
state = hass.states.get(entity_id)
assert state
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes.get("friendly_name") == "lightbulb"
entry = entity_registry.async_get(entity_id)
@ -55,7 +56,7 @@ async def test_light_set_on(
entity_id = "light.lightbulb"
state = hass.states.get(entity_id)
assert state
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes.get("friendly_name") == "lightbulb"
entry = entity_registry.async_get(entity_id)
@ -74,7 +75,7 @@ async def test_light_set_on(
state = hass.states.get(entity_id)
assert state
assert state.state == STATE_ON
assert state.state == LightState.ON
async def test_light_set_off(
@ -87,7 +88,7 @@ async def test_light_set_off(
entity_id = "light.bedroomlight"
state = hass.states.get(entity_id)
assert state
assert state.state == STATE_OFF
assert state.state == LightState.OFF
assert state.attributes.get("friendly_name") == "bedroomlight"
entry = entity_registry.async_get(entity_id)
@ -106,7 +107,7 @@ async def test_light_set_off(
state = hass.states.get(entity_id)
assert state
assert state.state == STATE_OFF
assert state.state == LightState.OFF
async def test_light_set_brightness(
@ -119,7 +120,7 @@ async def test_light_set_brightness(
entity_id = "light.lightbulb"
state = hass.states.get(entity_id)
assert state
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes.get("friendly_name") == "lightbulb"
entry = entity_registry.async_get(entity_id)
@ -138,7 +139,7 @@ async def test_light_set_brightness(
state = hass.states.get(entity_id)
assert state
assert state.state == STATE_ON
assert state.state == LightState.ON
assert int(state.attributes[ATTR_BRIGHTNESS]) == 0
@ -152,7 +153,7 @@ async def test_light_set_hue(
entity_id = "light.lightbulb"
state = hass.states.get(entity_id)
assert state
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes.get("friendly_name") == "lightbulb"
entry = entity_registry.async_get(entity_id)
@ -175,6 +176,6 @@ async def test_light_set_hue(
state = hass.states.get(entity_id)
assert state
assert state.state == STATE_ON
assert state.state == LightState.ON
assert int(state.attributes[ATTR_BRIGHTNESS]) == 0
assert state.attributes[ATTR_HS_COLOR] == (0, 0)

View File

@ -21,6 +21,7 @@ from homeassistant.components.light import (
ATTR_SUPPORTED_COLOR_MODES,
DOMAIN as LIGHT_DOMAIN,
ColorMode,
LightState,
)
from homeassistant.const import (
ATTR_ENTITY_ID,
@ -28,7 +29,6 @@ from homeassistant.const import (
CONF_DEVICES,
SERVICE_TURN_OFF,
SERVICE_TURN_ON,
STATE_ON,
)
from homeassistant.core import HomeAssistant
import homeassistant.util.dt as dt_util
@ -57,7 +57,7 @@ async def test_setup(hass: HomeAssistant, fritz: Mock) -> None:
state = hass.states.get(ENTITY_ID)
assert state
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_FRIENDLY_NAME] == "fake_name"
assert state.attributes[ATTR_COLOR_MODE] == ColorMode.COLOR_TEMP
assert state.attributes[ATTR_COLOR_TEMP_KELVIN] == 2700
@ -80,7 +80,7 @@ async def test_setup_non_color(hass: HomeAssistant, fritz: Mock) -> None:
state = hass.states.get(ENTITY_ID)
assert state
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_FRIENDLY_NAME] == "fake_name"
assert state.attributes[ATTR_BRIGHTNESS] == 100
assert state.attributes[ATTR_SUPPORTED_COLOR_MODES] == ["brightness"]
@ -100,7 +100,7 @@ async def test_setup_non_color_non_level(hass: HomeAssistant, fritz: Mock) -> No
state = hass.states.get(ENTITY_ID)
assert state
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_FRIENDLY_NAME] == "fake_name"
assert ATTR_BRIGHTNESS not in state.attributes
assert state.attributes[ATTR_SUPPORTED_COLOR_MODES] == ["onoff"]
@ -126,7 +126,7 @@ async def test_setup_color(hass: HomeAssistant, fritz: Mock) -> None:
state = hass.states.get(ENTITY_ID)
assert state
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_FRIENDLY_NAME] == "fake_name"
assert state.attributes[ATTR_COLOR_MODE] == ColorMode.HS
assert state.attributes[ATTR_COLOR_TEMP_KELVIN] is None
@ -152,7 +152,7 @@ async def test_turn_on(hass: HomeAssistant, fritz: Mock) -> None:
{ATTR_ENTITY_ID: ENTITY_ID, ATTR_BRIGHTNESS: 100, ATTR_COLOR_TEMP_KELVIN: 3000},
True,
)
assert device.set_state_on.call_count == 1
assert device.set_LightState.On.call_count == 1
assert device.set_level.call_count == 1
assert device.set_color_temp.call_count == 1
assert device.set_color_temp.call_args_list == [call(3000)]
@ -175,7 +175,7 @@ async def test_turn_on_color(hass: HomeAssistant, fritz: Mock) -> None:
{ATTR_ENTITY_ID: ENTITY_ID, ATTR_BRIGHTNESS: 100, ATTR_HS_COLOR: (100, 70)},
True,
)
assert device.set_state_on.call_count == 1
assert device.set_LightState.On.call_count == 1
assert device.set_level.call_count == 1
assert device.set_unmapped_color.call_count == 1
assert device.set_level.call_args_list == [call(100)]
@ -209,7 +209,7 @@ async def test_turn_on_color_unsupported_api_method(
{ATTR_ENTITY_ID: ENTITY_ID, ATTR_BRIGHTNESS: 100, ATTR_HS_COLOR: (100, 70)},
True,
)
assert device.set_state_on.call_count == 1
assert device.set_LightState.On.call_count == 1
assert device.set_level.call_count == 1
assert device.set_color.call_count == 1
assert device.set_level.call_args_list == [call(100)]
@ -239,7 +239,7 @@ async def test_turn_off(hass: HomeAssistant, fritz: Mock) -> None:
await hass.services.async_call(
LIGHT_DOMAIN, SERVICE_TURN_OFF, {ATTR_ENTITY_ID: ENTITY_ID}, True
)
assert device.set_state_off.call_count == 1
assert device.set_LightState.Off.call_count == 1
async def test_update(hass: HomeAssistant, fritz: Mock) -> None:

View File

@ -30,13 +30,12 @@ from homeassistant.components.light import (
SERVICE_TURN_OFF,
SERVICE_TURN_ON,
ColorMode,
LightState,
)
from homeassistant.const import (
ATTR_ENTITY_ID,
ATTR_SUPPORTED_FEATURES,
EVENT_CALL_SERVICE,
STATE_OFF,
STATE_ON,
STATE_UNAVAILABLE,
STATE_UNKNOWN,
)
@ -76,7 +75,7 @@ async def test_default_state(
state = hass.states.get("light.bedroom_group")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_SUPPORTED_FEATURES] == 0
assert state.attributes.get(ATTR_ENTITY_ID) == ["light.kitchen", "light.bedroom"]
assert state.attributes.get(ATTR_BRIGHTNESS) is None
@ -135,41 +134,41 @@ async def test_state_reporting_any(hass: HomeAssistant) -> None:
assert hass.states.get("light.light_group").state == STATE_UNKNOWN
# At least one member on -> group on
hass.states.async_set("light.test1", STATE_ON)
hass.states.async_set("light.test1", LightState.ON)
hass.states.async_set("light.test2", STATE_UNAVAILABLE)
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_ON
assert hass.states.get("light.light_group").state == LightState.ON
hass.states.async_set("light.test1", STATE_ON)
hass.states.async_set("light.test2", STATE_OFF)
hass.states.async_set("light.test1", LightState.ON)
hass.states.async_set("light.test2", LightState.OFF)
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_ON
assert hass.states.get("light.light_group").state == LightState.ON
hass.states.async_set("light.test1", STATE_ON)
hass.states.async_set("light.test2", STATE_ON)
hass.states.async_set("light.test1", LightState.ON)
hass.states.async_set("light.test2", LightState.ON)
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_ON
assert hass.states.get("light.light_group").state == LightState.ON
hass.states.async_set("light.test1", STATE_ON)
hass.states.async_set("light.test1", LightState.ON)
hass.states.async_set("light.test2", STATE_UNKNOWN)
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_ON
assert hass.states.get("light.light_group").state == LightState.ON
# Otherwise -> off
hass.states.async_set("light.test1", STATE_OFF)
hass.states.async_set("light.test2", STATE_OFF)
hass.states.async_set("light.test1", LightState.OFF)
hass.states.async_set("light.test2", LightState.OFF)
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_OFF
assert hass.states.get("light.light_group").state == LightState.OFF
hass.states.async_set("light.test1", STATE_UNKNOWN)
hass.states.async_set("light.test2", STATE_OFF)
hass.states.async_set("light.test2", LightState.OFF)
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_OFF
assert hass.states.get("light.light_group").state == LightState.OFF
hass.states.async_set("light.test1", STATE_UNAVAILABLE)
hass.states.async_set("light.test2", STATE_OFF)
hass.states.async_set("light.test2", LightState.OFF)
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_OFF
assert hass.states.get("light.light_group").state == LightState.OFF
# All group members removed from the state machine -> unavailable
hass.states.async_remove("light.test1")
@ -211,12 +210,12 @@ async def test_state_reporting_all(hass: HomeAssistant) -> None:
assert hass.states.get("light.light_group").state == STATE_UNAVAILABLE
# At least one member unknown or unavailable -> group unknown
hass.states.async_set("light.test1", STATE_ON)
hass.states.async_set("light.test1", LightState.ON)
hass.states.async_set("light.test2", STATE_UNAVAILABLE)
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_UNKNOWN
hass.states.async_set("light.test1", STATE_ON)
hass.states.async_set("light.test1", LightState.ON)
hass.states.async_set("light.test2", STATE_UNKNOWN)
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_UNKNOWN
@ -226,12 +225,12 @@ async def test_state_reporting_all(hass: HomeAssistant) -> None:
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_UNKNOWN
hass.states.async_set("light.test1", STATE_OFF)
hass.states.async_set("light.test1", LightState.OFF)
hass.states.async_set("light.test2", STATE_UNAVAILABLE)
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_UNKNOWN
hass.states.async_set("light.test1", STATE_OFF)
hass.states.async_set("light.test1", LightState.OFF)
hass.states.async_set("light.test2", STATE_UNKNOWN)
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_UNKNOWN
@ -242,21 +241,21 @@ async def test_state_reporting_all(hass: HomeAssistant) -> None:
assert hass.states.get("light.light_group").state == STATE_UNKNOWN
# At least one member off -> group off
hass.states.async_set("light.test1", STATE_ON)
hass.states.async_set("light.test2", STATE_OFF)
hass.states.async_set("light.test1", LightState.ON)
hass.states.async_set("light.test2", LightState.OFF)
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_OFF
assert hass.states.get("light.light_group").state == LightState.OFF
hass.states.async_set("light.test1", STATE_OFF)
hass.states.async_set("light.test2", STATE_OFF)
hass.states.async_set("light.test1", LightState.OFF)
hass.states.async_set("light.test2", LightState.OFF)
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_OFF
assert hass.states.get("light.light_group").state == LightState.OFF
# Otherwise -> on
hass.states.async_set("light.test1", STATE_ON)
hass.states.async_set("light.test2", STATE_ON)
hass.states.async_set("light.test1", LightState.ON)
hass.states.async_set("light.test2", LightState.ON)
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_ON
assert hass.states.get("light.light_group").state == LightState.ON
# All group members removed from the state machine -> unavailable
hass.states.async_remove("light.test1")
@ -268,8 +267,8 @@ async def test_state_reporting_all(hass: HomeAssistant) -> None:
async def test_brightness(hass: HomeAssistant) -> None:
"""Test brightness reporting."""
entities = [
MockLight("test1", STATE_ON),
MockLight("test2", STATE_OFF),
MockLight("test1", LightState.ON),
MockLight("test2", LightState.OFF),
]
setup_test_component_platform(hass, LIGHT_DOMAIN, entities)
@ -301,7 +300,7 @@ async def test_brightness(hass: HomeAssistant) -> None:
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 255
assert state.attributes[ATTR_COLOR_MODE] == "brightness"
assert state.attributes[ATTR_SUPPORTED_FEATURES] == 0
@ -315,7 +314,7 @@ async def test_brightness(hass: HomeAssistant) -> None:
)
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 177
assert state.attributes[ATTR_COLOR_MODE] == "brightness"
assert state.attributes[ATTR_SUPPORTED_FEATURES] == 0
@ -329,7 +328,7 @@ async def test_brightness(hass: HomeAssistant) -> None:
)
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 100
assert state.attributes[ATTR_COLOR_MODE] == "brightness"
assert state.attributes[ATTR_SUPPORTED_FEATURES] == 0
@ -339,8 +338,8 @@ async def test_brightness(hass: HomeAssistant) -> None:
async def test_color_hs(hass: HomeAssistant) -> None:
"""Test hs color reporting."""
entities = [
MockLight("test1", STATE_ON),
MockLight("test2", STATE_OFF),
MockLight("test1", LightState.ON),
MockLight("test2", LightState.OFF),
]
setup_test_component_platform(hass, LIGHT_DOMAIN, entities)
@ -373,7 +372,7 @@ async def test_color_hs(hass: HomeAssistant) -> None:
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_COLOR_MODE] == "hs"
assert state.attributes[ATTR_HS_COLOR] == (0, 100)
assert state.attributes[ATTR_SUPPORTED_COLOR_MODES] == ["hs"]
@ -409,8 +408,8 @@ async def test_color_hs(hass: HomeAssistant) -> None:
async def test_color_rgb(hass: HomeAssistant) -> None:
"""Test rgbw color reporting."""
entities = [
MockLight("test1", STATE_ON),
MockLight("test2", STATE_OFF),
MockLight("test1", LightState.ON),
MockLight("test2", LightState.OFF),
]
setup_test_component_platform(hass, LIGHT_DOMAIN, entities)
@ -445,7 +444,7 @@ async def test_color_rgb(hass: HomeAssistant) -> None:
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_COLOR_MODE] == "rgb"
assert state.attributes[ATTR_RGB_COLOR] == (0, 64, 128)
assert state.attributes[ATTR_SUPPORTED_COLOR_MODES] == ["rgb"]
@ -481,8 +480,8 @@ async def test_color_rgb(hass: HomeAssistant) -> None:
async def test_color_rgbw(hass: HomeAssistant) -> None:
"""Test rgbw color reporting."""
entities = [
MockLight("test1", STATE_ON),
MockLight("test2", STATE_OFF),
MockLight("test1", LightState.ON),
MockLight("test2", LightState.OFF),
]
setup_test_component_platform(hass, LIGHT_DOMAIN, entities)
@ -517,7 +516,7 @@ async def test_color_rgbw(hass: HomeAssistant) -> None:
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_COLOR_MODE] == "rgbw"
assert state.attributes[ATTR_RGBW_COLOR] == (0, 64, 128, 255)
assert state.attributes[ATTR_SUPPORTED_COLOR_MODES] == ["rgbw"]
@ -553,8 +552,8 @@ async def test_color_rgbw(hass: HomeAssistant) -> None:
async def test_color_rgbww(hass: HomeAssistant) -> None:
"""Test rgbww color reporting."""
entities = [
MockLight("test1", STATE_ON),
MockLight("test2", STATE_OFF),
MockLight("test1", LightState.ON),
MockLight("test2", LightState.OFF),
]
setup_test_component_platform(hass, LIGHT_DOMAIN, entities)
@ -589,7 +588,7 @@ async def test_color_rgbww(hass: HomeAssistant) -> None:
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_COLOR_MODE] == "rgbww"
assert state.attributes[ATTR_RGBWW_COLOR] == (0, 32, 64, 128, 255)
assert state.attributes[ATTR_SUPPORTED_COLOR_MODES] == ["rgbww"]
@ -625,8 +624,8 @@ async def test_color_rgbww(hass: HomeAssistant) -> None:
async def test_white(hass: HomeAssistant) -> None:
"""Test white reporting."""
entities = [
MockLight("test1", STATE_ON),
MockLight("test2", STATE_ON),
MockLight("test1", LightState.ON),
MockLight("test2", LightState.ON),
]
setup_test_component_platform(hass, LIGHT_DOMAIN, entities)
@ -682,8 +681,8 @@ async def test_white(hass: HomeAssistant) -> None:
async def test_color_temp(hass: HomeAssistant) -> None:
"""Test color temp reporting."""
entities = [
MockLight("test1", STATE_ON),
MockLight("test2", STATE_OFF),
MockLight("test1", LightState.ON),
MockLight("test2", LightState.OFF),
]
setup_test_component_platform(hass, LIGHT_DOMAIN, entities)
@ -751,9 +750,9 @@ async def test_color_temp(hass: HomeAssistant) -> None:
async def test_emulated_color_temp_group(hass: HomeAssistant) -> None:
"""Test emulated color temperature in a group."""
entities = [
MockLight("test1", STATE_ON),
MockLight("test2", STATE_OFF),
MockLight("test3", STATE_OFF),
MockLight("test1", LightState.ON),
MockLight("test2", LightState.OFF),
MockLight("test3", LightState.OFF),
]
setup_test_component_platform(hass, LIGHT_DOMAIN, entities)
@ -798,17 +797,17 @@ async def test_emulated_color_temp_group(hass: HomeAssistant) -> None:
await hass.async_block_till_done()
state = hass.states.get("light.test1")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_COLOR_TEMP] == 200
assert ATTR_HS_COLOR in state.attributes
state = hass.states.get("light.test2")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_COLOR_TEMP] == 200
assert ATTR_HS_COLOR in state.attributes
state = hass.states.get("light.test3")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_HS_COLOR] == (27.001, 19.243)
@ -818,8 +817,8 @@ async def test_min_max_mireds(hass: HomeAssistant) -> None:
min/max mireds is reported both when light is on and off
"""
entities = [
MockLight("test1", STATE_ON),
MockLight("test2", STATE_OFF),
MockLight("test1", LightState.ON),
MockLight("test2", LightState.OFF),
]
setup_test_component_platform(hass, LIGHT_DOMAIN, entities)
@ -901,7 +900,7 @@ async def test_effect_list(hass: HomeAssistant) -> None:
hass.states.async_set(
"light.test1",
STATE_ON,
LightState.ON,
{ATTR_EFFECT_LIST: ["None", "Random", "Colorloop"], ATTR_SUPPORTED_FEATURES: 4},
)
await hass.async_block_till_done()
@ -914,7 +913,7 @@ async def test_effect_list(hass: HomeAssistant) -> None:
hass.states.async_set(
"light.test2",
STATE_ON,
LightState.ON,
{ATTR_EFFECT_LIST: ["None", "Random", "Rainbow"], ATTR_SUPPORTED_FEATURES: 4},
)
await hass.async_block_till_done()
@ -928,7 +927,7 @@ async def test_effect_list(hass: HomeAssistant) -> None:
hass.states.async_set(
"light.test1",
STATE_OFF,
LightState.OFF,
{ATTR_EFFECT_LIST: ["None", "Colorloop", "Seven"], ATTR_SUPPORTED_FEATURES: 4},
)
await hass.async_block_till_done()
@ -960,31 +959,33 @@ async def test_effect(hass: HomeAssistant) -> None:
await hass.async_block_till_done()
hass.states.async_set(
"light.test1", STATE_ON, {ATTR_EFFECT: "None", ATTR_SUPPORTED_FEATURES: 6}
"light.test1", LightState.ON, {ATTR_EFFECT: "None", ATTR_SUPPORTED_FEATURES: 6}
)
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
assert state.attributes[ATTR_EFFECT] == "None"
hass.states.async_set(
"light.test2", STATE_ON, {ATTR_EFFECT: "None", ATTR_SUPPORTED_FEATURES: 6}
"light.test2", LightState.ON, {ATTR_EFFECT: "None", ATTR_SUPPORTED_FEATURES: 6}
)
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
assert state.attributes[ATTR_EFFECT] == "None"
hass.states.async_set(
"light.test3", STATE_ON, {ATTR_EFFECT: "Random", ATTR_SUPPORTED_FEATURES: 6}
"light.test3",
LightState.ON,
{ATTR_EFFECT: "Random", ATTR_SUPPORTED_FEATURES: 6},
)
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
assert state.attributes[ATTR_EFFECT] == "None"
hass.states.async_set(
"light.test1", STATE_OFF, {ATTR_EFFECT: "None", ATTR_SUPPORTED_FEATURES: 6}
"light.test1", LightState.OFF, {ATTR_EFFECT: "None", ATTR_SUPPORTED_FEATURES: 6}
)
hass.states.async_set(
"light.test2", STATE_OFF, {ATTR_EFFECT: "None", ATTR_SUPPORTED_FEATURES: 6}
"light.test2", LightState.OFF, {ATTR_EFFECT: "None", ATTR_SUPPORTED_FEATURES: 6}
)
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
@ -994,9 +995,9 @@ async def test_effect(hass: HomeAssistant) -> None:
async def test_supported_color_modes(hass: HomeAssistant) -> None:
"""Test supported_color_modes reporting."""
entities = [
MockLight("test1", STATE_ON),
MockLight("test2", STATE_OFF),
MockLight("test3", STATE_OFF),
MockLight("test1", LightState.ON),
MockLight("test2", LightState.OFF),
MockLight("test3", LightState.OFF),
]
setup_test_component_platform(hass, LIGHT_DOMAIN, entities)
@ -1042,9 +1043,9 @@ async def test_supported_color_modes(hass: HomeAssistant) -> None:
async def test_color_mode(hass: HomeAssistant) -> None:
"""Test color_mode reporting."""
entities = [
MockLight("test1", STATE_ON),
MockLight("test2", STATE_OFF),
MockLight("test3", STATE_OFF),
MockLight("test1", LightState.ON),
MockLight("test2", LightState.OFF),
MockLight("test3", LightState.OFF),
]
setup_test_component_platform(hass, LIGHT_DOMAIN, entities)
@ -1115,12 +1116,12 @@ async def test_color_mode(hass: HomeAssistant) -> None:
async def test_color_mode2(hass: HomeAssistant) -> None:
"""Test onoff color_mode and brightness are given lowest priority."""
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),
MockLight("test1", LightState.ON),
MockLight("test2", LightState.ON),
MockLight("test3", LightState.ON),
MockLight("test4", LightState.ON),
MockLight("test5", LightState.ON),
MockLight("test6", LightState.ON),
]
setup_test_component_platform(hass, LIGHT_DOMAIN, entities)
@ -1206,28 +1207,28 @@ async def test_supported_features(hass: HomeAssistant) -> None:
await hass.async_start()
await hass.async_block_till_done()
hass.states.async_set("light.test1", STATE_ON, {ATTR_SUPPORTED_FEATURES: 0})
hass.states.async_set("light.test1", LightState.ON, {ATTR_SUPPORTED_FEATURES: 0})
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
assert state.attributes[ATTR_SUPPORTED_FEATURES] == 0
# SUPPORT_COLOR_TEMP = 2
# SUPPORT_COLOR_TEMP = 2 will be blocked in favour of ColorMode.COLOR_TEMP
hass.states.async_set("light.test2", STATE_ON, {ATTR_SUPPORTED_FEATURES: 2})
hass.states.async_set("light.test2", LightState.ON, {ATTR_SUPPORTED_FEATURES: 2})
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
assert state.attributes[ATTR_SUPPORTED_FEATURES] == 0
# LightEntityFeature.TRANSITION | LightEntityFeature.FLASH | SUPPORT_BRIGHTNESS = 41
# SUPPORT_BRIGHTNESS = 1 will be translated to ColorMode.BRIGHTNESS
hass.states.async_set("light.test1", STATE_OFF, {ATTR_SUPPORTED_FEATURES: 41})
hass.states.async_set("light.test1", LightState.OFF, {ATTR_SUPPORTED_FEATURES: 41})
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
# LightEntityFeature.TRANSITION | LightEntityFeature.FLASH = 40
assert state.attributes[ATTR_SUPPORTED_FEATURES] == 40
# Test that unknown feature 256 is blocked
hass.states.async_set("light.test2", STATE_OFF, {ATTR_SUPPORTED_FEATURES: 256})
hass.states.async_set("light.test2", LightState.OFF, {ATTR_SUPPORTED_FEATURES: 256})
await hass.async_block_till_done()
state = hass.states.get("light.light_group")
assert state.attributes[ATTR_SUPPORTED_FEATURES] == 40
@ -1240,9 +1241,9 @@ async def test_service_calls(
) -> None:
"""Test service calls."""
entities = [
MockLight("bed_light", STATE_ON),
MockLight("ceiling_lights", STATE_OFF),
MockLight("kitchen_lights", STATE_OFF),
MockLight("bed_light", LightState.ON),
MockLight("ceiling_lights", LightState.OFF),
MockLight("kitchen_lights", LightState.OFF),
]
setup_test_component_platform(hass, LIGHT_DOMAIN, entities)
@ -1287,7 +1288,7 @@ async def test_service_calls(
await hass.async_block_till_done()
group_state = hass.states.get("light.light_group")
assert group_state.state == STATE_ON
assert group_state.state == LightState.ON
assert group_state.attributes[ATTR_SUPPORTED_COLOR_MODES] == [supported_color_modes]
await hass.services.async_call(
@ -1296,9 +1297,9 @@ async def test_service_calls(
{ATTR_ENTITY_ID: "light.light_group"},
blocking=True,
)
assert hass.states.get("light.bed_light").state == STATE_OFF
assert hass.states.get("light.ceiling_lights").state == STATE_OFF
assert hass.states.get("light.kitchen_lights").state == STATE_OFF
assert hass.states.get("light.bed_light").state == LightState.OFF
assert hass.states.get("light.ceiling_lights").state == LightState.OFF
assert hass.states.get("light.kitchen_lights").state == LightState.OFF
await hass.services.async_call(
LIGHT_DOMAIN,
@ -1307,9 +1308,9 @@ async def test_service_calls(
blocking=True,
)
assert hass.states.get("light.bed_light").state == STATE_ON
assert hass.states.get("light.ceiling_lights").state == STATE_ON
assert hass.states.get("light.kitchen_lights").state == STATE_ON
assert hass.states.get("light.bed_light").state == LightState.ON
assert hass.states.get("light.ceiling_lights").state == LightState.ON
assert hass.states.get("light.kitchen_lights").state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,
@ -1318,9 +1319,9 @@ async def test_service_calls(
blocking=True,
)
assert hass.states.get("light.bed_light").state == STATE_OFF
assert hass.states.get("light.ceiling_lights").state == STATE_OFF
assert hass.states.get("light.kitchen_lights").state == STATE_OFF
assert hass.states.get("light.bed_light").state == LightState.OFF
assert hass.states.get("light.ceiling_lights").state == LightState.OFF
assert hass.states.get("light.kitchen_lights").state == LightState.OFF
await hass.services.async_call(
LIGHT_DOMAIN,
@ -1334,17 +1335,17 @@ async def test_service_calls(
)
state = hass.states.get("light.bed_light")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 128
assert state.attributes[ATTR_RGB_COLOR] == (42, 255, 255)
state = hass.states.get("light.ceiling_lights")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 128
assert state.attributes[ATTR_RGB_COLOR] == (42, 255, 255)
state = hass.states.get("light.kitchen_lights")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 128
assert state.attributes[ATTR_RGB_COLOR] == (42, 255, 255)
@ -1360,17 +1361,17 @@ async def test_service_calls(
)
state = hass.states.get("light.bed_light")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 128
assert state.attributes[ATTR_RGB_COLOR] == (255, 0, 0)
state = hass.states.get("light.ceiling_lights")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 128
assert state.attributes[ATTR_RGB_COLOR] == (255, 0, 0)
state = hass.states.get("light.kitchen_lights")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 128
assert state.attributes[ATTR_RGB_COLOR] == (255, 0, 0)
@ -1399,7 +1400,7 @@ async def test_service_call_effect(hass: HomeAssistant) -> None:
await hass.async_start()
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_ON
assert hass.states.get("light.light_group").state == LightState.ON
await hass.services.async_call(
LIGHT_DOMAIN,
@ -1414,18 +1415,18 @@ async def test_service_call_effect(hass: HomeAssistant) -> None:
)
state = hass.states.get("light.bed_light")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 128
assert state.attributes[ATTR_EFFECT] == "Random"
assert state.attributes[ATTR_RGB_COLOR] == (42, 255, 255)
state = hass.states.get("light.ceiling_lights")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 128
assert state.attributes[ATTR_RGB_COLOR] == (42, 255, 255)
state = hass.states.get("light.kitchen_lights")
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes[ATTR_BRIGHTNESS] == 128
assert state.attributes[ATTR_RGB_COLOR] == (42, 255, 255)
@ -1505,7 +1506,7 @@ async def test_reload(hass: HomeAssistant) -> None:
await hass.async_start()
await hass.async_block_till_done()
assert hass.states.get("light.light_group").state == STATE_ON
assert hass.states.get("light.light_group").state == LightState.ON
yaml_path = get_fixture_path("configuration.yaml", "group")
with patch.object(hass_config, "YAML_CONFIG_FILE", yaml_path):
@ -1524,7 +1525,7 @@ async def test_reload(hass: HomeAssistant) -> None:
async def test_reload_with_platform_not_setup(hass: HomeAssistant) -> None:
"""Test the ability to reload lights."""
hass.states.async_set("light.bowl", STATE_ON)
hass.states.async_set("light.bowl", LightState.ON)
await async_setup_component(
hass,
LIGHT_DOMAIN,
@ -1574,11 +1575,11 @@ async def test_reload_with_base_integration_platform_not_setup(
},
)
await hass.async_block_till_done()
hass.states.async_set("light.master_hall_lights", STATE_ON)
hass.states.async_set("light.master_hall_lights_2", STATE_OFF)
hass.states.async_set("light.master_hall_lights", LightState.ON)
hass.states.async_set("light.master_hall_lights_2", LightState.OFF)
hass.states.async_set("light.outside_patio_lights", STATE_OFF)
hass.states.async_set("light.outside_patio_lights_2", STATE_OFF)
hass.states.async_set("light.outside_patio_lights", LightState.OFF)
hass.states.async_set("light.outside_patio_lights_2", LightState.OFF)
yaml_path = get_fixture_path("configuration.yaml", "group")
with patch.object(hass_config, "YAML_CONFIG_FILE", yaml_path):
@ -1593,8 +1594,8 @@ async def test_reload_with_base_integration_platform_not_setup(
assert hass.states.get("light.light_group") is None
assert hass.states.get("light.master_hall_lights_g") is not None
assert hass.states.get("light.outside_patio_lights_g") is not None
assert hass.states.get("light.master_hall_lights_g").state == STATE_ON
assert hass.states.get("light.outside_patio_lights_g").state == STATE_OFF
assert hass.states.get("light.master_hall_lights_g").state == LightState.ON
assert hass.states.get("light.outside_patio_lights_g").state == LightState.OFF
async def test_nested_group(hass: HomeAssistant) -> None:
@ -1626,7 +1627,7 @@ async def test_nested_group(hass: HomeAssistant) -> None:
state = hass.states.get("light.bedroom_group")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes.get(ATTR_ENTITY_ID) == [
"light.bed_light",
"light.kitchen_lights",
@ -1634,7 +1635,7 @@ async def test_nested_group(hass: HomeAssistant) -> None:
state = hass.states.get("light.nested_group")
assert state is not None
assert state.state == STATE_ON
assert state.state == LightState.ON
assert state.attributes.get(ATTR_ENTITY_ID) == ["light.bedroom_group"]
# Test controlling the nested group
@ -1645,7 +1646,7 @@ async def test_nested_group(hass: HomeAssistant) -> None:
{ATTR_ENTITY_ID: "light.nested_group"},
blocking=True,
)
assert hass.states.get("light.bed_light").state == STATE_OFF
assert hass.states.get("light.kitchen_lights").state == STATE_OFF
assert hass.states.get("light.bedroom_group").state == STATE_OFF
assert hass.states.get("light.nested_group").state == STATE_OFF
assert hass.states.get("light.bed_light").state == LightState.OFF
assert hass.states.get("light.kitchen_lights").state == LightState.OFF
assert hass.states.get("light.bedroom_group").state == LightState.OFF
assert hass.states.get("light.nested_group").state == LightState.OFF

View File

@ -15,13 +15,11 @@ from homeassistant.components.home_connect.const import (
REFRIGERATION_EXTERNAL_LIGHT_BRIGHTNESS,
REFRIGERATION_EXTERNAL_LIGHT_POWER,
)
from homeassistant.components.light import DOMAIN as LIGHT_DOMAIN
from homeassistant.components.light import DOMAIN as LIGHT_DOMAIN, LightState
from homeassistant.config_entries import ConfigEntryState
from homeassistant.const import (
SERVICE_TURN_OFF,
SERVICE_TURN_ON,
STATE_OFF,
STATE_ON,
STATE_UNKNOWN,
Platform,
)
@ -75,7 +73,7 @@ async def test_light(
},
SERVICE_TURN_ON,
{},
STATE_ON,
LightState.ON,
"Hood",
),
(
@ -88,7 +86,7 @@ async def test_light(
},
SERVICE_TURN_ON,
{"brightness": 200},
STATE_ON,
LightState.ON,
"Hood",
),
(
@ -99,7 +97,7 @@ async def test_light(
},
SERVICE_TURN_OFF,
{},
STATE_OFF,
LightState.OFF,
"Hood",
),
(
@ -125,7 +123,7 @@ async def test_light(
},
SERVICE_TURN_ON,
{"brightness": 200},
STATE_ON,
LightState.ON,
"Hood",
),
(
@ -136,7 +134,7 @@ async def test_light(
},
SERVICE_TURN_OFF,
{},
STATE_OFF,
LightState.OFF,
"Hood",
),
(
@ -147,7 +145,7 @@ async def test_light(
},
SERVICE_TURN_ON,
{},
STATE_ON,
LightState.ON,
"Hood",
),
(
@ -160,7 +158,7 @@ async def test_light(
},
SERVICE_TURN_ON,
{},
STATE_ON,
LightState.ON,
"FridgeFreezer",
),
],