diff --git a/api/apps/canvas_app.py b/api/apps/canvas_app.py index 7fa55d16de..29761d38e0 100644 --- a/api/apps/canvas_app.py +++ b/api/apps/canvas_app.py @@ -187,7 +187,8 @@ async def run(): canvas_category = replica_payload.get("canvas_category", CanvasCategory.Agent) dsl_str = json.dumps(replica_dsl, ensure_ascii=False) - if canvas_category == CanvasCategory.DataFlow: + _, cvs = await thread_pool_exec(UserCanvasService.get_by_id, req["id"]) + if cvs.canvas_category == CanvasCategory.DataFlow: task_id = get_uuid() Pipeline(dsl_str, tenant_id=tenant_id, doc_id=CANVAS_DEBUG_DOC_ID, task_id=task_id, flow_id=req["id"]) ok, error_message = await thread_pool_exec(queue_dataflow, user_id, req["id"], task_id, CANVAS_DEBUG_DOC_ID, files[0], 0) diff --git a/test/testcases/test_web_api/test_canvas_app/test_canvas_routes_unit.py b/test/testcases/test_web_api/test_canvas_app/test_canvas_routes_unit.py index 4c990bf060..540453e415 100644 --- a/test/testcases/test_web_api/test_canvas_app/test_canvas_routes_unit.py +++ b/test/testcases/test_web_api/test_canvas_app/test_canvas_routes_unit.py @@ -625,24 +625,6 @@ def test_run_dataflow_and_canvas_sse_matrix_unit(monkeypatch): res = _run(inspect.unwrap(module.run)()) assert res["message"] == "canvas replica not found, please call /get/ first." - pipeline_calls = [] - monkeypatch.setattr(module, "Pipeline", lambda *args, **kwargs: pipeline_calls.append((args, kwargs))) - monkeypatch.setattr(module, "get_uuid", lambda: "task-1") - - _set_request_json(monkeypatch, module, {"id": "df-1", "files": ["f1"], "user_id": "exp-1"}) - monkeypatch.setattr(module.CanvasReplicaService, "load_for_run", lambda *_args, **_kwargs: {"dsl": {"n": 1}, "title": "df", "canvas_category": module.CanvasCategory.DataFlow}) - monkeypatch.setattr(module, "queue_dataflow", lambda *_args, **_kwargs: (False, "queue failed")) - res = _run(inspect.unwrap(module.run)()) - assert res["code"] == module.RetCode.DATA_ERROR - assert "queue failed" in res["message"] - assert pipeline_calls - - _set_request_json(monkeypatch, module, {"id": "df-1", "files": ["f1"], "user_id": "exp-1"}) - monkeypatch.setattr(module, "queue_dataflow", lambda *_args, **_kwargs: (True, "")) - res = _run(inspect.unwrap(module.run)()) - assert res["code"] == module.RetCode.SUCCESS - assert res["data"]["message_id"] == "task-1" - _set_request_json(monkeypatch, module, {"id": "ag-1", "query": "q", "files": [], "inputs": {}}) monkeypatch.setattr(module.CanvasReplicaService, "load_for_run", lambda *_args, **_kwargs: {"dsl": {"x": 1}, "title": "ag", "canvas_category": module.CanvasCategory.Agent}) monkeypatch.setattr(module, "Canvas", lambda *_args, **_kwargs: (_ for _ in ()).throw(RuntimeError("canvas init failed")))