diff --git a/homeassistant/components/homeassistant/scene.py b/homeassistant/components/homeassistant/scene.py index 7e4a0433344..1ff3915f121 100644 --- a/homeassistant/components/homeassistant/scene.py +++ b/homeassistant/components/homeassistant/scene.py @@ -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 diff --git a/tests/components/homeassistant/test_scene.py b/tests/components/homeassistant/test_scene.py index a1f502a3475..8f47d891f9f 100644 --- a/tests/components/homeassistant/test_scene.py +++ b/tests/components/homeassistant/test_scene.py @@ -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"