half an attempt to asyncify tests + deprecate old temp path creation
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
from pathlib import Path
|
||||
|
||||
from wf_artifacts import (
|
||||
FileDraftWorkspaceStore,
|
||||
@@ -15,7 +16,7 @@ from wf_mcp.storage import FileStore
|
||||
from wf_mcp.workflow_surface import WorkflowSurfaceHandlers
|
||||
from wf_mcp.workflow_surface.models import CreateMinimalDraftWorkspaceRequest
|
||||
|
||||
from ..test_support import echo_tool, local_temp_root
|
||||
from ..test_support import echo_tool
|
||||
from .conftest import (
|
||||
ContentOnlyOutputAdapter,
|
||||
echo_draft,
|
||||
@@ -24,14 +25,12 @@ from .conftest import (
|
||||
)
|
||||
|
||||
|
||||
def test_workflow_surface_rejects_unknown_draft_route_outcome_when_spec_is_known() -> (
|
||||
None
|
||||
):
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_draft_bad_outcome"
|
||||
)
|
||||
def test_workflow_surface_rejects_unknown_draft_route_outcome_when_spec_is_known(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "surface_draft_bad_outcome")
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_draft_bad_outcome_mcp"),
|
||||
store=FileStore(tmp_path / "surface_draft_bad_outcome_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
)
|
||||
service.register_connection(
|
||||
@@ -48,14 +47,12 @@ def test_workflow_surface_rejects_unknown_draft_route_outcome_when_spec_is_known
|
||||
assert payload["diagnostics"][0]["path"] == "routes.echo.typo"
|
||||
|
||||
|
||||
def test_workflow_surface_creates_artifact_from_draft_with_binding_suggestions() -> (
|
||||
None
|
||||
):
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_draft_create"
|
||||
)
|
||||
def test_workflow_surface_creates_artifact_from_draft_with_binding_suggestions(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "surface_draft_create")
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_draft_create_mcp"),
|
||||
store=FileStore(tmp_path / "surface_draft_create_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
)
|
||||
service.register_connection(
|
||||
@@ -85,10 +82,10 @@ def test_workflow_surface_creates_artifact_from_draft_with_binding_suggestions()
|
||||
assert artifact.required_capability_map()["demo.echo_tool"].logical_source == "demo"
|
||||
|
||||
|
||||
def test_workflow_surface_draft_artifact_requires_std_self_binding() -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_draft_missing_std"
|
||||
)
|
||||
def test_workflow_surface_draft_artifact_requires_std_self_binding(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "surface_draft_missing_std")
|
||||
h = handlers(artifact_store)
|
||||
|
||||
asyncio.run(
|
||||
@@ -119,15 +116,15 @@ def test_workflow_surface_draft_artifact_requires_std_self_binding() -> None:
|
||||
assert payload["diagnostics"][0]["logical_ref"] == "wf.std.replace"
|
||||
|
||||
|
||||
def test_workflow_surface_validates_draft_workspace_with_live_outcomes() -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_workspace_validate"
|
||||
)
|
||||
def test_workflow_surface_validates_draft_workspace_with_live_outcomes(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "surface_workspace_validate")
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_workspace_validate_mcp"),
|
||||
store=FileStore(tmp_path / "surface_workspace_validate_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
draft_workspace_store=FileDraftWorkspaceStore(
|
||||
local_temp_root() / "surface_workspace_validate_mcp"
|
||||
tmp_path / "surface_workspace_validate_mcp"
|
||||
),
|
||||
)
|
||||
service.register_connection(
|
||||
@@ -153,15 +150,15 @@ def test_workflow_surface_validates_draft_workspace_with_live_outcomes() -> None
|
||||
assert fetched["status"] == "invalid"
|
||||
|
||||
|
||||
def test_workflow_surface_creates_minimal_draft_workspace_with_error_route() -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_minimal_workspace"
|
||||
)
|
||||
def test_workflow_surface_creates_minimal_draft_workspace_with_error_route(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "surface_minimal_workspace")
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_minimal_workspace_mcp"),
|
||||
store=FileStore(tmp_path / "surface_minimal_workspace_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
draft_workspace_store=FileDraftWorkspaceStore(
|
||||
local_temp_root() / "surface_minimal_workspace_mcp"
|
||||
tmp_path / "surface_minimal_workspace_mcp"
|
||||
),
|
||||
)
|
||||
service.register_connection(
|
||||
@@ -205,14 +202,16 @@ def test_workflow_surface_creates_minimal_draft_workspace_with_error_route() ->
|
||||
]
|
||||
|
||||
|
||||
def test_workflow_surface_minimal_draft_honors_explicit_error_message_source() -> None:
|
||||
def test_workflow_surface_minimal_draft_honors_explicit_error_message_source(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_minimal_explicit_error_mcp"),
|
||||
store=FileStore(tmp_path / "surface_minimal_explicit_error_mcp"),
|
||||
artifact_store=FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_minimal_explicit_error"
|
||||
tmp_path / "surface_minimal_explicit_error"
|
||||
),
|
||||
draft_workspace_store=FileDraftWorkspaceStore(
|
||||
local_temp_root() / "surface_minimal_explicit_error_mcp"
|
||||
tmp_path / "surface_minimal_explicit_error_mcp"
|
||||
),
|
||||
)
|
||||
service.register_connection(
|
||||
@@ -266,14 +265,16 @@ def test_minimal_draft_request_accepts_structural_error_message_source() -> None
|
||||
assert request.error_message_source.parts == ("error_message",)
|
||||
|
||||
|
||||
def test_workflow_surface_accepts_canonical_bindings_for_minimal_workspace() -> None:
|
||||
def test_workflow_surface_accepts_canonical_bindings_for_minimal_workspace(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_minimal_canonical_mcp"),
|
||||
store=FileStore(tmp_path / "surface_minimal_canonical_mcp"),
|
||||
artifact_store=FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_minimal_canonical"
|
||||
tmp_path / "surface_minimal_canonical"
|
||||
),
|
||||
draft_workspace_store=FileDraftWorkspaceStore(
|
||||
local_temp_root() / "surface_minimal_canonical_mcp"
|
||||
tmp_path / "surface_minimal_canonical_mcp"
|
||||
),
|
||||
)
|
||||
h = WorkflowSurfaceHandlers(service)
|
||||
@@ -318,15 +319,17 @@ def test_workflow_surface_accepts_canonical_bindings_for_minimal_workspace() ->
|
||||
]
|
||||
|
||||
|
||||
def test_workflow_surface_creates_draft_workspace_from_capability_hints() -> None:
|
||||
def test_workflow_surface_creates_draft_workspace_from_capability_hints(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_workspace_from_capability"
|
||||
tmp_path / "surface_workspace_from_capability"
|
||||
)
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_workspace_from_capability_mcp"),
|
||||
store=FileStore(tmp_path / "surface_workspace_from_capability_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
draft_workspace_store=FileDraftWorkspaceStore(
|
||||
local_temp_root() / "surface_workspace_from_capability_mcp"
|
||||
tmp_path / "surface_workspace_from_capability_mcp"
|
||||
),
|
||||
)
|
||||
service.register_connection(
|
||||
@@ -374,15 +377,13 @@ def test_workflow_surface_creates_draft_workspace_from_capability_hints() -> Non
|
||||
]
|
||||
|
||||
|
||||
def test_workflow_surface_creates_artifact_from_workspace() -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_workspace_artifact"
|
||||
)
|
||||
def test_workflow_surface_creates_artifact_from_workspace(tmp_path: Path) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "surface_workspace_artifact")
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_workspace_artifact_mcp"),
|
||||
store=FileStore(tmp_path / "surface_workspace_artifact_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
draft_workspace_store=FileDraftWorkspaceStore(
|
||||
local_temp_root() / "surface_workspace_artifact_mcp"
|
||||
tmp_path / "surface_workspace_artifact_mcp"
|
||||
),
|
||||
)
|
||||
service.register_connection(
|
||||
@@ -419,15 +420,17 @@ def test_workflow_surface_creates_artifact_from_workspace() -> None:
|
||||
assert required.output_schema_snapshot is not None
|
||||
|
||||
|
||||
def test_workflow_surface_workspace_artifact_infers_raw_concrete_dependency() -> None:
|
||||
def test_workflow_surface_workspace_artifact_infers_raw_concrete_dependency(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_workspace_artifact_raw_dependency"
|
||||
tmp_path / "surface_workspace_artifact_raw_dependency"
|
||||
)
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_workspace_artifact_raw_mcp"),
|
||||
store=FileStore(tmp_path / "surface_workspace_artifact_raw_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
draft_workspace_store=FileDraftWorkspaceStore(
|
||||
local_temp_root() / "surface_workspace_artifact_raw_mcp"
|
||||
tmp_path / "surface_workspace_artifact_raw_mcp"
|
||||
),
|
||||
)
|
||||
service.register_connection(
|
||||
@@ -459,15 +462,13 @@ def test_workflow_surface_workspace_artifact_infers_raw_concrete_dependency() ->
|
||||
assert required.output_schema_snapshot is not None
|
||||
|
||||
|
||||
def test_workflow_surface_creates_wrapper_from_workspace() -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_workspace_wrapper"
|
||||
)
|
||||
def test_workflow_surface_creates_wrapper_from_workspace(tmp_path: Path) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "surface_workspace_wrapper")
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_workspace_wrapper_mcp"),
|
||||
store=FileStore(tmp_path / "surface_workspace_wrapper_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
draft_workspace_store=FileDraftWorkspaceStore(
|
||||
local_temp_root() / "surface_workspace_wrapper_mcp"
|
||||
tmp_path / "surface_workspace_wrapper_mcp"
|
||||
),
|
||||
)
|
||||
service.register_connection(
|
||||
@@ -499,15 +500,17 @@ def test_workflow_surface_creates_wrapper_from_workspace() -> None:
|
||||
assert artifact.plan["nodes"][0]["node"] == "demo.echo_tool"
|
||||
|
||||
|
||||
def test_workflow_surface_low_confidence_draft_returns_patch_guidance() -> None:
|
||||
def test_workflow_surface_low_confidence_draft_returns_patch_guidance(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_workspace_low_confidence"
|
||||
tmp_path / "surface_workspace_low_confidence"
|
||||
)
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_workspace_low_confidence_mcp"),
|
||||
store=FileStore(tmp_path / "surface_workspace_low_confidence_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
draft_workspace_store=FileDraftWorkspaceStore(
|
||||
local_temp_root() / "surface_workspace_low_confidence_mcp"
|
||||
tmp_path / "surface_workspace_low_confidence_mcp"
|
||||
),
|
||||
)
|
||||
service.register_connection(
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
from pathlib import Path
|
||||
|
||||
from wf_artifacts import FileRunStore, FileWorkflowArtifactStore, WorkflowDeployment
|
||||
from wf_mcp.broker import WfMcpService
|
||||
@@ -15,7 +16,7 @@ from wf_platform import (
|
||||
SourceVisibility,
|
||||
)
|
||||
|
||||
from ..test_support import echo_tool, local_temp_root
|
||||
from ..test_support import echo_tool
|
||||
from .conftest import (
|
||||
amount_tool,
|
||||
changed_echo_tool,
|
||||
@@ -37,8 +38,8 @@ def test_raw_workflow_plan_uses_core_step_and_edge_models() -> None:
|
||||
assert plan.edges[0].outcome == "ok"
|
||||
|
||||
|
||||
def test_workflow_surface_runs_non_interrupting_deployment() -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(local_temp_root() / "surface_run")
|
||||
def test_workflow_surface_runs_non_interrupting_deployment(tmp_path: Path) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "surface_run")
|
||||
artifact_store.save_artifact(echo_artifact())
|
||||
artifact_store.save_deployment(
|
||||
WorkflowDeployment(
|
||||
@@ -49,9 +50,9 @@ def test_workflow_surface_runs_non_interrupting_deployment() -> None:
|
||||
)
|
||||
)
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_run_mcp"),
|
||||
store=FileStore(tmp_path / "surface_run_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
run_store=FileRunStore(local_temp_root() / "surface_run_mcp"),
|
||||
run_store=FileRunStore(tmp_path / "surface_run_mcp"),
|
||||
)
|
||||
service.register_connection(
|
||||
ConnectionConfig(id="demo.personal", server="demo", account="personal")
|
||||
@@ -97,10 +98,10 @@ def test_workflow_surface_runs_non_interrupting_deployment() -> None:
|
||||
assert traced["trace_truncated"] is False
|
||||
|
||||
|
||||
def test_workflow_surface_failed_deployment_exposes_error_on_run_and_inspect() -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_failed_run_error"
|
||||
)
|
||||
def test_workflow_surface_failed_deployment_exposes_error_on_run_and_inspect(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "surface_failed_run_error")
|
||||
artifact_store.save_artifact(failing_artifact())
|
||||
artifact_store.save_deployment(
|
||||
WorkflowDeployment(
|
||||
@@ -111,9 +112,9 @@ def test_workflow_surface_failed_deployment_exposes_error_on_run_and_inspect() -
|
||||
)
|
||||
)
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_failed_run_error_mcp"),
|
||||
store=FileStore(tmp_path / "surface_failed_run_error_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
run_store=FileRunStore(local_temp_root() / "surface_failed_run_error_mcp"),
|
||||
run_store=FileRunStore(tmp_path / "surface_failed_run_error_mcp"),
|
||||
)
|
||||
service.register_connection(
|
||||
ConnectionConfig(id="demo.personal", server="demo", account="personal")
|
||||
@@ -139,10 +140,10 @@ def test_workflow_surface_failed_deployment_exposes_error_on_run_and_inspect() -
|
||||
assert inspected["next_actions"]["recommended_next_tool"] is None
|
||||
|
||||
|
||||
def test_workflow_surface_run_deployment_can_include_trace_detail() -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_run_trace_detail"
|
||||
)
|
||||
def test_workflow_surface_run_deployment_can_include_trace_detail(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "surface_run_trace_detail")
|
||||
artifact_store.save_artifact(echo_artifact())
|
||||
artifact_store.save_deployment(
|
||||
WorkflowDeployment(
|
||||
@@ -153,9 +154,9 @@ def test_workflow_surface_run_deployment_can_include_trace_detail() -> None:
|
||||
)
|
||||
)
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_run_trace_detail_mcp"),
|
||||
store=FileStore(tmp_path / "surface_run_trace_detail_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
run_store=FileRunStore(local_temp_root() / "surface_run_trace_detail_mcp"),
|
||||
run_store=FileRunStore(tmp_path / "surface_run_trace_detail_mcp"),
|
||||
)
|
||||
service.register_connection(
|
||||
ConnectionConfig(id="demo.personal", server="demo", account="personal")
|
||||
@@ -188,9 +189,11 @@ def test_workflow_surface_run_deployment_can_include_trace_detail() -> None:
|
||||
assert validated["trace_truncated"] is False
|
||||
|
||||
|
||||
def test_workflow_surface_run_deployment_can_read_empty_trace_range() -> None:
|
||||
def test_workflow_surface_run_deployment_can_read_empty_trace_range(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_run_trace_empty_range"
|
||||
tmp_path / "surface_run_trace_empty_range"
|
||||
)
|
||||
artifact_store.save_artifact(echo_artifact())
|
||||
artifact_store.save_deployment(
|
||||
@@ -202,9 +205,9 @@ def test_workflow_surface_run_deployment_can_read_empty_trace_range() -> None:
|
||||
)
|
||||
)
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_run_trace_empty_range_mcp"),
|
||||
store=FileStore(tmp_path / "surface_run_trace_empty_range_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
run_store=FileRunStore(local_temp_root() / "surface_run_trace_empty_range_mcp"),
|
||||
run_store=FileRunStore(tmp_path / "surface_run_trace_empty_range_mcp"),
|
||||
)
|
||||
service.register_connection(
|
||||
ConnectionConfig(id="demo.personal", server="demo", account="personal")
|
||||
@@ -227,8 +230,10 @@ def test_workflow_surface_run_deployment_can_read_empty_trace_range() -> None:
|
||||
assert payload["trace_truncated"] is False
|
||||
|
||||
|
||||
def test_workflow_surface_runs_deployment_with_bound_node_spec_dependency() -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(local_temp_root() / "surface_bound_node")
|
||||
def test_workflow_surface_runs_deployment_with_bound_node_spec_dependency(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "surface_bound_node")
|
||||
artifact_store.save_artifact(logical_echo_artifact())
|
||||
artifact_store.save_deployment(
|
||||
WorkflowDeployment(
|
||||
@@ -239,9 +244,9 @@ def test_workflow_surface_runs_deployment_with_bound_node_spec_dependency() -> N
|
||||
)
|
||||
)
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_bound_node_mcp"),
|
||||
store=FileStore(tmp_path / "surface_bound_node_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
run_store=FileRunStore(local_temp_root() / "surface_bound_node_mcp"),
|
||||
run_store=FileRunStore(tmp_path / "surface_bound_node_mcp"),
|
||||
)
|
||||
service.register_connection(
|
||||
ConnectionConfig(id="demo.personal", server="demo", account="personal")
|
||||
@@ -261,14 +266,14 @@ def test_workflow_surface_runs_deployment_with_bound_node_spec_dependency() -> N
|
||||
assert payload["diagnostics"] == []
|
||||
|
||||
|
||||
def test_workflow_surface_runs_artifact_created_from_concrete_node_ref() -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_created_bound_node"
|
||||
)
|
||||
def test_workflow_surface_runs_artifact_created_from_concrete_node_ref(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "surface_created_bound_node")
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_created_bound_node_mcp"),
|
||||
store=FileStore(tmp_path / "surface_created_bound_node_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
run_store=FileRunStore(local_temp_root() / "surface_created_bound_node_mcp"),
|
||||
run_store=FileRunStore(tmp_path / "surface_created_bound_node_mcp"),
|
||||
)
|
||||
service.register_connection(
|
||||
ConnectionConfig(id="demo.personal", server="demo", account="personal")
|
||||
@@ -313,12 +318,12 @@ def test_workflow_surface_runs_artifact_created_from_concrete_node_ref() -> None
|
||||
assert payload["diagnostics"] == []
|
||||
|
||||
|
||||
def test_workflow_surface_detects_drift_from_saved_node_spec_snapshot() -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(
|
||||
local_temp_root() / "surface_created_drift"
|
||||
)
|
||||
def test_workflow_surface_detects_drift_from_saved_node_spec_snapshot(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "surface_created_drift")
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_created_drift_mcp"),
|
||||
store=FileStore(tmp_path / "surface_created_drift_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
)
|
||||
service.register_connection(
|
||||
@@ -379,8 +384,10 @@ def test_workflow_surface_detects_drift_from_saved_node_spec_snapshot() -> None:
|
||||
assert payload["diagnostics"][0]["code"] == "schema_changed"
|
||||
|
||||
|
||||
def test_workflow_surface_runs_deployment_with_bound_reducer_dependency() -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(local_temp_root() / "surface_reducer")
|
||||
def test_workflow_surface_runs_deployment_with_bound_reducer_dependency(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "surface_reducer")
|
||||
artifact_store.save_artifact(custom_reducer_artifact())
|
||||
artifact_store.save_deployment(
|
||||
WorkflowDeployment(
|
||||
@@ -394,9 +401,9 @@ def test_workflow_surface_runs_deployment_with_bound_reducer_dependency() -> Non
|
||||
)
|
||||
)
|
||||
service = WfMcpService(
|
||||
store=FileStore(local_temp_root() / "surface_reducer_mcp"),
|
||||
store=FileStore(tmp_path / "surface_reducer_mcp"),
|
||||
artifact_store=artifact_store,
|
||||
run_store=FileRunStore(local_temp_root() / "surface_reducer_mcp"),
|
||||
run_store=FileRunStore(tmp_path / "surface_reducer_mcp"),
|
||||
)
|
||||
service.register_connection(
|
||||
ConnectionConfig(id="demo.personal", server="demo", account="personal")
|
||||
|
||||
Reference in New Issue
Block a user