patch draft common wrappers

This commit is contained in:
lda
2026-05-19 06:08:39 +07:00 Verified
parent 4fac6d06d2
commit 5ed89350a9
8 changed files with 272 additions and 1 deletions
+8
View File
@@ -69,6 +69,10 @@ def test_server_exposes_upstream_admin_and_workflow_tools() -> None:
assert "wf.workflow.get_draft_workspace" in names
assert "wf.workflow.delete_draft_workspace" in names
assert "wf.workflow.patch_draft_workspace" in names
assert "wf.workflow.set_draft_name" in names
assert "wf.workflow.set_draft_route" in names
assert "wf.workflow.set_step_input_map" in names
assert "wf.workflow.set_step_output_map" in names
assert "wf.workflow.create_minimal_draft_workspace" in names
assert "wf.workflow.create_artifact_from_workspace" in names
assert "wf.workflow.run_deployment" in names
@@ -194,6 +198,10 @@ def test_server_search_mode_pins_stable_control_and_workflow_tools() -> None:
assert "wf.workflow.get_draft_workspace" in names
assert "wf.workflow.delete_draft_workspace" in names
assert "wf.workflow.patch_draft_workspace" in names
assert "wf.workflow.set_draft_name" in names
assert "wf.workflow.set_draft_route" in names
assert "wf.workflow.set_step_input_map" in names
assert "wf.workflow.set_step_output_map" in names
assert "wf.workflow.create_minimal_draft_workspace" in names
assert "wf.workflow.create_artifact_from_workspace" in names
assert "wf.workflow.call_capability" in names
+58
View File
@@ -434,6 +434,64 @@ def test_workflow_surface_deletes_draft_workspace() -> None:
assert listed["workspaces"] == []
def test_workflow_surface_patch_helpers_update_draft_workspace() -> None:
artifact_store = FileWorkflowArtifactStore(
local_temp_root() / "surface_workspace_patch_helpers"
)
handlers = _handlers(artifact_store)
asyncio.run(
handlers.create_draft_workspace(
workspace_id="echo_draft",
draft=_echo_draft(),
)
)
named = asyncio.run(
handlers.set_draft_name(
workspace_id="echo_draft",
revision=1,
name="echo_v2",
)
)
routed = asyncio.run(
handlers.set_draft_route(
workspace_id="echo_draft",
revision=2,
step_id="echo",
outcome="error",
target="__end__",
)
)
input_mapped = asyncio.run(
handlers.set_step_input_map(
workspace_id="echo_draft",
revision=3,
step_id="echo",
input_map={"input.text": "message"},
)
)
output_mapped = asyncio.run(
handlers.set_step_output_map(
workspace_id="echo_draft",
revision=4,
step_id="echo",
output_map={"echoed": "state.echoed"},
)
)
fetched = asyncio.run(
handlers.get_draft_workspace(workspace_id="echo_draft", include_draft=True)
)
assert named["revision"] == 2
assert routed["revision"] == 3
assert input_mapped["revision"] == 4
assert output_mapped["revision"] == 5
assert fetched["draft"]["name"] == "echo_v2"
assert fetched["draft"]["routes"]["echo"]["error"] == "__end__"
assert fetched["draft"]["steps"]["echo"]["in"] == {"input.text": "message"}
assert fetched["draft"]["steps"]["echo"]["out"] == {"echoed": "state.echoed"}
def test_workflow_surface_patches_draft_workspace_by_revision() -> None:
artifact_store = FileWorkflowArtifactStore(
local_temp_root() / "surface_workspace_patch"