WIP: fix(api): handle output variable replacement properly

This commit is contained in:
QuantumGhost
2026-01-04 01:11:33 +08:00
parent 6337a9a125
commit a2e250ce0c
3 changed files with 103 additions and 8 deletions

View File

@ -6,6 +6,7 @@ from unittest.mock import MagicMock
import pytest
from models.model import AppMode
from tasks.app_generate.workflow_execute_task import _publish_streaming_response
@ -13,7 +14,7 @@ from tasks.app_generate.workflow_execute_task import _publish_streaming_response
def mock_topic(mocker) -> MagicMock:
topic = MagicMock()
mocker.patch(
"tasks.app_generate.workflow_execute_task.AdvancedChatAppGenerator.get_response_topic",
"tasks.app_generate.workflow_execute_task.MessageBasedAppGenerator.get_response_topic",
return_value=topic,
)
return topic
@ -23,7 +24,7 @@ def test_publish_streaming_response_with_uuid(mock_topic: MagicMock):
workflow_run_id = uuid.uuid4()
response_stream = iter([{"event": "foo"}, "ping"])
_publish_streaming_response(response_stream, workflow_run_id)
_publish_streaming_response(response_stream, workflow_run_id, app_mode=AppMode.ADVANCED_CHAT)
payloads = [call.args[0] for call in mock_topic.publish.call_args_list]
assert payloads == [json.dumps({"event": "foo"}).encode(), json.dumps("ping").encode()]
@ -33,6 +34,6 @@ def test_publish_streaming_response_coerces_string_uuid(mock_topic: MagicMock):
workflow_run_id = uuid.uuid4()
response_stream = iter([{"event": "bar"}])
_publish_streaming_response(response_stream, str(workflow_run_id))
_publish_streaming_response(response_stream, str(workflow_run_id), app_mode=AppMode.ADVANCED_CHAT)
mock_topic.publish.assert_called_once_with(json.dumps({"event": "bar"}).encode())