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

@ -0,0 +1,39 @@
from types import SimpleNamespace
from controllers.service_api.app.workflow import WorkflowRunOutputsField, WorkflowRunStatusField
from core.workflow.enums import WorkflowExecutionStatus
def test_workflow_run_status_field_with_enum() -> None:
field = WorkflowRunStatusField()
obj = SimpleNamespace(status=WorkflowExecutionStatus.PAUSED)
assert field.output("status", obj) == "paused"
def test_workflow_run_status_field_with_dict() -> None:
field = WorkflowRunStatusField()
payload = {"status": "running"}
assert field.output("status", payload) == "running"
def test_workflow_run_outputs_field_paused_returns_empty() -> None:
field = WorkflowRunOutputsField()
obj = SimpleNamespace(status=WorkflowExecutionStatus.PAUSED, outputs_dict={"foo": "bar"})
assert field.output("outputs", obj) == {}
def test_workflow_run_outputs_field_running_returns_outputs() -> None:
field = WorkflowRunOutputsField()
obj = SimpleNamespace(status=WorkflowExecutionStatus.RUNNING, outputs_dict={"foo": "bar"})
assert field.output("outputs", obj) == {"foo": "bar"}
def test_workflow_run_outputs_field_dict_fallback() -> None:
field = WorkflowRunOutputsField()
payload = {"status": "succeeded", "outputs": {"answer": "ok"}}
assert field.output("outputs", payload) == {"answer": "ok"}