fix: 修复 _get_task_output_url 导入路径并更新测试
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 31s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m5s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m34s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m33s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m54s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m10s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m12s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m32s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m23s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m58s
AI Code Review / AI Code Review (pull_request) Failing after 6m22s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 7m26s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 6s
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 31s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m5s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m34s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m33s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m54s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m10s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m12s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m32s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m23s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m58s
AI Code Review / AI Code Review (pull_request) Failing after 6m22s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 7m26s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 6s
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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 == ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user