mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 18:57:06 +00:00
Fix referenced objects in script sequences (#135499)
This commit is contained in:
parent
2d67aca550
commit
b009f11013
@ -1589,6 +1589,9 @@ class Script:
|
|||||||
target, referenced, script[CONF_SEQUENCE]
|
target, referenced, script[CONF_SEQUENCE]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
elif action == cv.SCRIPT_ACTION_SEQUENCE:
|
||||||
|
Script._find_referenced_target(target, referenced, step[CONF_SEQUENCE])
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def referenced_devices(self) -> set[str]:
|
def referenced_devices(self) -> set[str]:
|
||||||
"""Return a set of referenced devices."""
|
"""Return a set of referenced devices."""
|
||||||
@ -1636,6 +1639,9 @@ class Script:
|
|||||||
for script in step[CONF_PARALLEL]:
|
for script in step[CONF_PARALLEL]:
|
||||||
Script._find_referenced_devices(referenced, script[CONF_SEQUENCE])
|
Script._find_referenced_devices(referenced, script[CONF_SEQUENCE])
|
||||||
|
|
||||||
|
elif action == cv.SCRIPT_ACTION_SEQUENCE:
|
||||||
|
Script._find_referenced_devices(referenced, step[CONF_SEQUENCE])
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def referenced_entities(self) -> set[str]:
|
def referenced_entities(self) -> set[str]:
|
||||||
"""Return a set of referenced entities."""
|
"""Return a set of referenced entities."""
|
||||||
@ -1684,6 +1690,9 @@ class Script:
|
|||||||
for script in step[CONF_PARALLEL]:
|
for script in step[CONF_PARALLEL]:
|
||||||
Script._find_referenced_entities(referenced, script[CONF_SEQUENCE])
|
Script._find_referenced_entities(referenced, script[CONF_SEQUENCE])
|
||||||
|
|
||||||
|
elif action == cv.SCRIPT_ACTION_SEQUENCE:
|
||||||
|
Script._find_referenced_entities(referenced, step[CONF_SEQUENCE])
|
||||||
|
|
||||||
def run(
|
def run(
|
||||||
self, variables: _VarsType | None = None, context: Context | None = None
|
self, variables: _VarsType | None = None, context: Context | None = None
|
||||||
) -> None:
|
) -> None:
|
||||||
|
@ -4118,6 +4118,14 @@ async def test_referenced_labels(hass: HomeAssistant) -> None:
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"sequence": [
|
||||||
|
{
|
||||||
|
"action": "test.script",
|
||||||
|
"data": {"label_id": "label_sequence"},
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
"Test Name",
|
"Test Name",
|
||||||
@ -4135,6 +4143,7 @@ async def test_referenced_labels(hass: HomeAssistant) -> None:
|
|||||||
"label_if_then",
|
"label_if_then",
|
||||||
"label_if_else",
|
"label_if_else",
|
||||||
"label_parallel",
|
"label_parallel",
|
||||||
|
"label_sequence",
|
||||||
}
|
}
|
||||||
# Test we cache results.
|
# Test we cache results.
|
||||||
assert script_obj.referenced_labels is script_obj.referenced_labels
|
assert script_obj.referenced_labels is script_obj.referenced_labels
|
||||||
@ -4220,6 +4229,14 @@ async def test_referenced_floors(hass: HomeAssistant) -> None:
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"sequence": [
|
||||||
|
{
|
||||||
|
"action": "test.script",
|
||||||
|
"data": {"floor_id": "floor_sequence"},
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
"Test Name",
|
"Test Name",
|
||||||
@ -4236,6 +4253,7 @@ async def test_referenced_floors(hass: HomeAssistant) -> None:
|
|||||||
"floor_if_then",
|
"floor_if_then",
|
||||||
"floor_if_else",
|
"floor_if_else",
|
||||||
"floor_parallel",
|
"floor_parallel",
|
||||||
|
"floor_sequence",
|
||||||
}
|
}
|
||||||
# Test we cache results.
|
# Test we cache results.
|
||||||
assert script_obj.referenced_floors is script_obj.referenced_floors
|
assert script_obj.referenced_floors is script_obj.referenced_floors
|
||||||
@ -4321,6 +4339,14 @@ async def test_referenced_areas(hass: HomeAssistant) -> None:
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"sequence": [
|
||||||
|
{
|
||||||
|
"action": "test.script",
|
||||||
|
"data": {"area_id": "area_sequence"},
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
"Test Name",
|
"Test Name",
|
||||||
@ -4337,6 +4363,7 @@ async def test_referenced_areas(hass: HomeAssistant) -> None:
|
|||||||
"area_if_then",
|
"area_if_then",
|
||||||
"area_if_else",
|
"area_if_else",
|
||||||
"area_parallel",
|
"area_parallel",
|
||||||
|
"area_sequence",
|
||||||
# 'area_service_template', # no area extraction from template
|
# 'area_service_template', # no area extraction from template
|
||||||
}
|
}
|
||||||
# Test we cache results.
|
# Test we cache results.
|
||||||
@ -4437,6 +4464,14 @@ async def test_referenced_entities(hass: HomeAssistant) -> None:
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"sequence": [
|
||||||
|
{
|
||||||
|
"action": "test.script",
|
||||||
|
"data": {"entity_id": "light.sequence"},
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
"Test Name",
|
"Test Name",
|
||||||
@ -4456,6 +4491,7 @@ async def test_referenced_entities(hass: HomeAssistant) -> None:
|
|||||||
"light.if_then",
|
"light.if_then",
|
||||||
"light.if_else",
|
"light.if_else",
|
||||||
"light.parallel",
|
"light.parallel",
|
||||||
|
"light.sequence",
|
||||||
# "light.service_template", # no entity extraction from template
|
# "light.service_template", # no entity extraction from template
|
||||||
"scene.hello",
|
"scene.hello",
|
||||||
"sensor.condition",
|
"sensor.condition",
|
||||||
@ -4554,6 +4590,14 @@ async def test_referenced_devices(hass: HomeAssistant) -> None:
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"sequence": [
|
||||||
|
{
|
||||||
|
"action": "test.script",
|
||||||
|
"target": {"device_id": "sequence-device"},
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
"Test Name",
|
"Test Name",
|
||||||
@ -4575,6 +4619,7 @@ async def test_referenced_devices(hass: HomeAssistant) -> None:
|
|||||||
"if-then",
|
"if-then",
|
||||||
"if-else",
|
"if-else",
|
||||||
"parallel-device",
|
"parallel-device",
|
||||||
|
"sequence-device",
|
||||||
}
|
}
|
||||||
# Test we cache results.
|
# Test we cache results.
|
||||||
assert script_obj.referenced_devices is script_obj.referenced_devices
|
assert script_obj.referenced_devices is script_obj.referenced_devices
|
||||||
|
Loading…
x
Reference in New Issue
Block a user