From 1fa98693a2f1622afa8de312e5a04a8c81a3ff6e Mon Sep 17 00:00:00 2001 From: Yansong Zhang <916125788@qq.com> Date: Fri, 17 Jul 2026 15:19:01 +0800 Subject: [PATCH] test(workflow): cover abort fallback handling --- .../core/app/apps/test_base_app_queue_manager.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/api/tests/unit_tests/core/app/apps/test_base_app_queue_manager.py b/api/tests/unit_tests/core/app/apps/test_base_app_queue_manager.py index f9e0e47dd96..3a5591613b1 100644 --- a/api/tests/unit_tests/core/app/apps/test_base_app_queue_manager.py +++ b/api/tests/unit_tests/core/app/apps/test_base_app_queue_manager.py @@ -80,3 +80,18 @@ class TestBaseAppQueueManager: "t1", reason="Client response stream closed before app execution completed", ) + + def test_abort_execution_is_idempotent_when_graph_stop_command_fails(self, caplog): + with ( + patch("core.app.apps.base_app_queue_manager.redis_client") as mock_redis, + patch("core.app.apps.base_app_queue_manager.GraphEngineManager") as graph_engine_manager, + ): + mock_redis.setex.return_value = True + graph_engine_manager.return_value.send_stop_command.side_effect = RuntimeError("redis unavailable") + manager = DummyQueueManager(task_id="t1", user_id="u1", invoke_from=InvokeFrom.SERVICE_API) + + manager._abort_execution("stream closed") + manager._abort_execution("duplicate") + + graph_engine_manager.return_value.send_stop_command.assert_called_once_with("t1", reason="stream closed") + assert "Failed to abort app execution for task t1" in caplog.text