feat(scenes): add deterministic romantic cinema template
This commit is contained in:
@@ -701,6 +701,50 @@ def test_romantic_template_always_adds_authorized_decorative_lights() -> None:
|
||||
assert "ir:flash-close-00000000003" not in _peripheral_refs(observed[0])
|
||||
|
||||
|
||||
def test_romantic_cinema_template_keeps_native_base_and_adds_lights_without_model() -> None:
|
||||
client = StructuredSceneClient()
|
||||
assistant = CodexAssistantService(client)
|
||||
template = _scene_template(
|
||||
template_id="romantic-cinema",
|
||||
name="浪漫影院模式",
|
||||
aliases=["浪漫观影模式"],
|
||||
)
|
||||
observed: list[dict[str, object]] = []
|
||||
|
||||
def execute(
|
||||
_instruction: str,
|
||||
_progress: Callable[[dict[str, object]], None],
|
||||
assistant_plan: Mapping[str, object],
|
||||
) -> dict[str, object]:
|
||||
observed.append(deepcopy(dict(assistant_plan)))
|
||||
return _preview_result("浪漫影院模式")
|
||||
|
||||
result, _events = _invoke(
|
||||
assistant,
|
||||
"创建浪漫影院模式",
|
||||
execute,
|
||||
conversation_id="conv-romantic-cinema-deterministic",
|
||||
catalog=_catalog_with_templates(template),
|
||||
scene_context=_scene_context_with_flashing_light(),
|
||||
)
|
||||
|
||||
assert result["success"] is True
|
||||
assert result["route"] == "scene_template"
|
||||
assert client.structured_calls == []
|
||||
assert client.legacy_calls == []
|
||||
native_requests = [
|
||||
request
|
||||
for request in observed[0]["requests"]
|
||||
if request.get("domain") != "self_extension"
|
||||
]
|
||||
assert native_requests == template["plan"]["requests"]
|
||||
assert _peripheral_refs(observed[0]) == [
|
||||
"ir:flash-open-000000000001",
|
||||
"ir:ambient-open-0000000001",
|
||||
"ir:strip-open-000000000001",
|
||||
]
|
||||
|
||||
|
||||
def test_mid_autumn_cloud_composition_adds_required_native_and_external_controls() -> None:
|
||||
client = StructuredSceneClient()
|
||||
assistant = CodexAssistantService(client)
|
||||
|
||||
Reference in New Issue
Block a user