feat(api): implement paused status exposure for service api

This commit is contained in:
QuantumGhost
2026-01-27 09:26:16 +08:00
parent 116ec9dd04
commit 7c33e5107b
10 changed files with 155 additions and 12 deletions

View File

@ -101,7 +101,12 @@ def test_handle_workflow_paused_event_persists_human_input_extra_content() -> No
pipeline._application_generate_entity = SimpleNamespace(task_id="task-1")
pipeline._workflow_response_converter = mock.Mock()
pipeline._workflow_response_converter.workflow_pause_to_stream_response.return_value = []
pipeline._ensure_graph_runtime_initialized = mock.Mock(side_effect=ValueError())
pipeline._ensure_graph_runtime_initialized = mock.Mock(
return_value=SimpleNamespace(
total_tokens=0,
node_run_steps=0,
),
)
pipeline._save_message = mock.Mock()
message = SimpleNamespace(status=MessageStatus.NORMAL)
pipeline._get_message = mock.Mock(return_value=message)
@ -155,7 +160,7 @@ def test_resume_appends_chunks_to_paused_answer() -> None:
answer="before",
status=MessageStatus.PAUSED,
)
user = EndUser.__new__(EndUser)
user = EndUser()
user.id = "user-1"
user.session_id = "session-1"
workflow = SimpleNamespace(id="workflow-1", tenant_id="tenant-1", features_dict={})

View File

@ -138,13 +138,18 @@ def test_queue_workflow_paused_event_to_stream_responses():
paused_nodes=["node-id"],
)
responses = converter.workflow_pause_to_stream_response(event=queue_event, task_id="task")
runtime_state = SimpleNamespace(total_tokens=0, node_run_steps=0)
responses = converter.workflow_pause_to_stream_response(
event=queue_event,
task_id="task",
graph_runtime_state=runtime_state,
)
assert isinstance(responses[-1], WorkflowPauseStreamResponse)
pause_resp = responses[-1]
assert pause_resp.workflow_run_id == "run-id"
assert pause_resp.data.paused_nodes == ["node-id"]
assert pause_resp.data.outputs == {"answer": "value"}
assert pause_resp.data.outputs == {}
assert pause_resp.data.reasons[0]["form_id"] == "form-1"
assert pause_resp.data.reasons[0]["display_in_ui"] is True