fix: expose run step identities across transports
This commit is contained in:
@@ -163,6 +163,7 @@ def test_decode_trace_result_decodes_bounded_trace() -> None:
|
||||
"frame_id": "root",
|
||||
"node_id": "constant",
|
||||
"step_type": "node",
|
||||
"step_number": 1,
|
||||
"resolved_input": {},
|
||||
"outcome": "ok",
|
||||
"next_node_id": "__end__",
|
||||
@@ -176,3 +177,4 @@ def test_decode_trace_result_decodes_bounded_trace() -> None:
|
||||
assert result.trace_start == 0
|
||||
assert result.trace is not None
|
||||
assert result.trace[0]["node_id"] == "constant"
|
||||
assert result.trace[0]["step_number"] == 1
|
||||
|
||||
@@ -65,6 +65,7 @@ class _Port:
|
||||
"frame_id": "root",
|
||||
"node_id": "approve",
|
||||
"step_type": "node",
|
||||
"step_number": 1,
|
||||
"resolved_input": {},
|
||||
"outcome": "ok",
|
||||
"next_node_id": "__end__",
|
||||
@@ -101,6 +102,7 @@ async def test_interrupted_run_resumes_and_reads_bounded_trace() -> None:
|
||||
assert trace.start == 0
|
||||
assert trace.limit == 25
|
||||
assert len(trace.frames) == 1
|
||||
assert trace.frames[0].step_number == 1
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
||||
@@ -1199,6 +1199,7 @@ async def test_rpc_runs_deployment_and_reads_bounded_trace(tmp_path) -> None:
|
||||
assert trace["result"]["trace_start"] == 0
|
||||
assert trace["result"]["trace_limit"] == 1
|
||||
assert len(trace["result"]["trace"]) == 1
|
||||
assert trace["result"]["trace"][0]["step_number"] == 1
|
||||
|
||||
|
||||
async def test_rpc_run_list_method(tmp_path) -> None:
|
||||
@@ -2309,6 +2310,28 @@ async def test_rpc_runs_start_rejects_non_positive_step_budget(tmp_path) -> None
|
||||
assert rejected["error"]["code"] == -32602
|
||||
|
||||
|
||||
@pytest.mark.parametrize("max_steps", [True, "5"])
|
||||
async def test_rpc_runs_start_rejects_non_integer_step_budget(
|
||||
tmp_path, max_steps: object
|
||||
) -> None:
|
||||
server = build_local_static_workflow_server(tmp_path / "store")
|
||||
deployment_id = await _seed_step_budget_deployment(server)
|
||||
app = create_rpc_app(server)
|
||||
transport = httpx.ASGITransport(app=app)
|
||||
async with httpx.AsyncClient(transport=transport, base_url="http://test") as client:
|
||||
rejected = await _rpc(
|
||||
client,
|
||||
"workflow.runs.start",
|
||||
{
|
||||
"deployment_id": deployment_id,
|
||||
"workflow_input": {},
|
||||
"max_steps": max_steps,
|
||||
},
|
||||
)
|
||||
|
||||
assert rejected["error"]["code"] == -32602
|
||||
|
||||
|
||||
async def test_rpc_runs_resume_rejects_step_budget_replacement(tmp_path) -> None:
|
||||
server = build_local_static_workflow_server(tmp_path / "store")
|
||||
app = create_rpc_app(server)
|
||||
|
||||
Reference in New Issue
Block a user