Fix scene validator (#40140)
This commit is contained in:
parent
ff0562ad1e
commit
d25192d8c5
2 changed files with 13 additions and 4 deletions
|
@ -35,15 +35,15 @@ def _convert_states(states):
|
|||
"""Convert state definitions to State objects."""
|
||||
result = {}
|
||||
|
||||
for entity_id in states:
|
||||
for entity_id, info in states.items():
|
||||
entity_id = cv.entity_id(entity_id)
|
||||
|
||||
if isinstance(states[entity_id], dict):
|
||||
entity_attrs = states[entity_id].copy()
|
||||
if isinstance(info, dict):
|
||||
entity_attrs = info.copy()
|
||||
state = entity_attrs.pop(ATTR_STATE, None)
|
||||
attributes = entity_attrs
|
||||
else:
|
||||
state = states[entity_id]
|
||||
state = info
|
||||
attributes = {}
|
||||
|
||||
# YAML translates 'on' to a boolean
|
||||
|
|
|
@ -320,3 +320,12 @@ async def test_config(hass):
|
|||
no_icon = hass.states.get("scene.scene_no_icon")
|
||||
assert no_icon is not None
|
||||
assert "icon" not in no_icon.attributes
|
||||
|
||||
|
||||
def test_validator():
|
||||
"""Test validators."""
|
||||
parsed = ha_scene.STATES_SCHEMA({"light.Test": {"state": "on"}})
|
||||
assert len(parsed) == 1
|
||||
assert "light.test" in parsed
|
||||
assert parsed["light.test"].entity_id == "light.test"
|
||||
assert parsed["light.test"].state == "on"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue