From ed80fd7205f33fc1ec5ae4131e87f8e36fbf5ad5 Mon Sep 17 00:00:00 2001 From: CI Bot Date: Mon, 10 Aug 2026 23:54:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20=5Fget=5Ftask=5Fout?= =?UTF-8?q?put=5Furl=20=E5=AF=BC=E5=85=A5=E8=B7=AF=E5=BE=84=E5=B9=B6?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/routes/templates_editor/generation.py | 12 +++++---- tests/unit/test_unified_render_reuse.py | 25 +++++++++++++------ 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/apps/api/app/api/routes/templates_editor/generation.py b/apps/api/app/api/routes/templates_editor/generation.py index e0a7be1bc..fdb372d43 100755 --- a/apps/api/app/api/routes/templates_editor/generation.py +++ b/apps/api/app/api/routes/templates_editor/generation.py @@ -18,6 +18,7 @@ from app.dependencies import ( get_asset_library_repository, get_asset_repository, get_db_session, + get_generated_video_repository, ) from app.schemas.generation_task import GenerationTaskResponse from app.services.edit_plan_service import EditPlanService @@ -28,6 +29,7 @@ from sqlalchemy.orm import Session from packages.adapters.sqlalchemy_impl.generation_task_repository import ( SQLAlchemyGenerationTaskRepository, ) +from packages.application.generated_videos import ListGeneratedVideosByTaskUseCase from packages.application.generation_tasks import ( CreateGenerationTaskCommand, CreateGenerationTaskUseCase, @@ -89,7 +91,7 @@ def generate_editor_draft( gen_task_repo.update(reusable_task) # 将产物 URL 写入 plan config - rendered_url = _get_task_output_url(reusable_task, gen_task_repo) + rendered_url = _get_task_output_url(reusable_task, gen_task_repo, db) plan_svc.update_plan_config( plan_id, { @@ -211,12 +213,12 @@ def _find_reusable_preview_task(gen_task_repo, plan_id: str, plan) -> "object | return None -def _get_task_output_url(task, gen_task_repo) -> str: +def _get_task_output_url(task, gen_task_repo, db) -> str: """获取任务的输出视频 URL。""" try: - from app.core.task_repository_helpers import get_generated_videos_for_task - - videos = get_generated_videos_for_task(task.id, gen_task_repo) + video_repo = get_generated_video_repository(db) + use_case = ListGeneratedVideosByTaskUseCase(video_repo) + videos = use_case.execute(task.id) if videos: return getattr(videos[0], "file_url", "") or "" except Exception: diff --git a/tests/unit/test_unified_render_reuse.py b/tests/unit/test_unified_render_reuse.py index 3d6bd1aee..545a3b9c4 100644 --- a/tests/unit/test_unified_render_reuse.py +++ b/tests/unit/test_unified_render_reuse.py @@ -188,15 +188,19 @@ class TestGetTaskOutputUrl: task = _make_task() repo = MagicMock() + db = MagicMock() mock_video = MagicMock() mock_video.file_url = "https://oss.example.com/video.mp4" + mock_use_case = MagicMock() + mock_use_case.execute.return_value = [mock_video] + with patch( - "app.api.routes.templates_editor.generation.get_generated_videos_for_task", - return_value=[mock_video], + "app.api.routes.templates_editor.generation.ListGeneratedVideosByTaskUseCase", + return_value=mock_use_case, ): - result = _get_task_output_url(task, repo) + result = _get_task_output_url(task, repo, db) assert result == "https://oss.example.com/video.mp4" @@ -205,12 +209,16 @@ class TestGetTaskOutputUrl: task = _make_task() repo = MagicMock() + db = MagicMock() + + mock_use_case = MagicMock() + mock_use_case.execute.return_value = [] with patch( - "app.api.routes.templates_editor.generation.get_generated_videos_for_task", - return_value=[], + "app.api.routes.templates_editor.generation.ListGeneratedVideosByTaskUseCase", + return_value=mock_use_case, ): - result = _get_task_output_url(task, repo) + result = _get_task_output_url(task, repo, db) assert result == "" @@ -219,12 +227,13 @@ class TestGetTaskOutputUrl: task = _make_task() repo = MagicMock() + db = MagicMock() with patch( - "app.api.routes.templates_editor.generation.get_generated_videos_for_task", + "app.api.routes.templates_editor.generation.ListGeneratedVideosByTaskUseCase", side_effect=Exception("db error"), ): - result = _get_task_output_url(task, repo) + result = _get_task_output_url(task, repo, db) assert result == ""