fix: close Python workflow client review
This commit is contained in:
@@ -236,6 +236,29 @@ async def test_validate_artifact_plan_projects_invalid_plan_diagnostic(
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_validate_artifact_plan_roots_capability_diagnostic_at_request_field(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "artifacts_requirement")
|
||||
api, _service = _artifact_api(artifact_store)
|
||||
|
||||
result = await api.validate_artifact_plan(
|
||||
plan=_echo_artifact().plan,
|
||||
outcomes=("completed",),
|
||||
required_capabilities={
|
||||
"broken": {
|
||||
"ref": {"source": "demo", "capability_key": "echo"},
|
||||
"kind": "not-a-capability-kind",
|
||||
}
|
||||
},
|
||||
source_bindings={},
|
||||
)
|
||||
|
||||
assert result["status"] == "invalid"
|
||||
assert result["diagnostics"][0]["path"] == "required_capabilities.broken.kind"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_validate_artifact_plan_propagates_unexpected_value_error(
|
||||
tmp_path: Path,
|
||||
@@ -290,6 +313,41 @@ async def test_validate_artifact_plan_derives_saved_workflow_dependencies(
|
||||
assert result["workflow_dependencies"] == {"child_workflow": 7}
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_validate_artifact_plan_rejects_conflicting_child_version_pins(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
artifact_store = FileWorkflowArtifactStore(tmp_path / "artifacts_pin_conflict")
|
||||
api, _service = _artifact_api(artifact_store)
|
||||
plan = _echo_artifact().plan
|
||||
plan["start"] = "child_v1"
|
||||
plan["nodes"] = [
|
||||
{
|
||||
"id": node_id,
|
||||
"type": "subgraph",
|
||||
"workflow": {"artifact_id": "child_workflow", "version": version},
|
||||
"input_schema": {"type": "object"},
|
||||
"output_schema": {"type": "object"},
|
||||
"outcomes": ["completed"],
|
||||
}
|
||||
for node_id, version in (("child_v1", 1), ("child_v2", 2))
|
||||
]
|
||||
plan["edges"] = [
|
||||
{"from": "child_v1", "outcome": "completed", "to": "child_v2"},
|
||||
{"from": "child_v2", "outcome": "completed", "to": "__end__"},
|
||||
]
|
||||
|
||||
result = await api.validate_artifact_plan(
|
||||
plan=plan,
|
||||
outcomes=("completed",),
|
||||
source_bindings={},
|
||||
)
|
||||
|
||||
assert result["status"] == "invalid"
|
||||
assert result["diagnostics"][0]["path"] == "plan"
|
||||
assert "conflicting versions 1 and 2" in result["diagnostics"][0]["message"]
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_create_artifact_from_workspace_suggests_exact_available_source_binding(
|
||||
tmp_path: Path,
|
||||
|
||||
Reference in New Issue
Block a user