Fix scene validator (#40140)

This commit is contained in:
Paulus Schoutsen 2020-09-16 16:26:34 +02:00 committed by GitHub
parent ff0562ad1e
commit d25192d8c5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 4 deletions

View file

@ -35,15 +35,15 @@ def _convert_states(states):
"""Convert state definitions to State objects.""" """Convert state definitions to State objects."""
result = {} result = {}
for entity_id in states: for entity_id, info in states.items():
entity_id = cv.entity_id(entity_id) entity_id = cv.entity_id(entity_id)
if isinstance(states[entity_id], dict): if isinstance(info, dict):
entity_attrs = states[entity_id].copy() entity_attrs = info.copy()
state = entity_attrs.pop(ATTR_STATE, None) state = entity_attrs.pop(ATTR_STATE, None)
attributes = entity_attrs attributes = entity_attrs
else: else:
state = states[entity_id] state = info
attributes = {} attributes = {}
# YAML translates 'on' to a boolean # YAML translates 'on' to a boolean

View file

@ -320,3 +320,12 @@ async def test_config(hass):
no_icon = hass.states.get("scene.scene_no_icon") no_icon = hass.states.get("scene.scene_no_icon")
assert no_icon is not None assert no_icon is not None
assert "icon" not in no_icon.attributes 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"