style: auto-format with black + isort + prettier [skip ci-format-check]
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 35s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 4m22s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 3m43s
AI Code Review / AI Code Review (pull_request) Failing after 3m4s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 2m18s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m39s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m38s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m26s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m28s
CI/CD Pipeline / Validate - Code Quality (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 471h5m55s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 471h7m12s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 471h5m57s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 471h7m54s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 471h8m15s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 471h10m29s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 471h10m33s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 471h39m59s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 471h42m13s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 471h44m31s

This commit is contained in:
CI Bot
2026-08-27 16:11:55 +00:00
parent 030220f24d
commit fdc9573baa
+29 -42
View File
@@ -116,11 +116,7 @@ class TestEditorClipsBySegments:
mock_plan_svc = _make_plan_svc()
mock_asset_repo = MagicMock()
mock_asset_repo.get = MagicMock(
side_effect=lambda aid: _make_mock_asset(
aid, {"a1": 30.0, "a2": 20.0}[aid]
)
)
mock_asset_repo.get = MagicMock(side_effect=lambda aid: _make_mock_asset(aid, {"a1": 30.0, "a2": 20.0}[aid]))
# 传 required_clips_count=2 但模板有 4 个 segment
body = ClipsFromAssetsRequest(asset_ids=["a1", "a2"], required_clips_count=2)
@@ -156,9 +152,7 @@ class TestEditorClipsBySegments:
mock_plan_svc = _make_plan_svc()
mock_asset_repo = MagicMock()
mock_asset_repo.get = MagicMock(
return_value=_make_mock_asset("a1", 30.0)
)
mock_asset_repo.get = MagicMock(return_value=_make_mock_asset("a1", 30.0))
body = ClipsFromAssetsRequest(asset_ids=["a1"], required_clips_count=3)
@@ -188,9 +182,7 @@ class TestEditorClipsBySegments:
mock_plan_svc = _make_plan_svc()
mock_asset_repo = MagicMock()
mock_asset_repo.get = MagicMock(
return_value=_make_mock_asset("a1", 30.0)
)
mock_asset_repo.get = MagicMock(return_value=_make_mock_asset("a1", 30.0))
body = ClipsFromAssetsRequest(asset_ids=["a1"])
@@ -249,9 +241,7 @@ class TestEditorClipsDurationAndStartTime:
mock_plan_svc = _make_plan_svc()
mock_asset_repo = MagicMock()
mock_asset_repo.get = MagicMock(
return_value=_make_mock_asset("short", 3.0)
)
mock_asset_repo.get = MagicMock(return_value=_make_mock_asset("short", 3.0))
body = ClipsFromAssetsRequest(asset_ids=["short"])
@@ -280,16 +270,17 @@ class TestEditorClipsDurationAndStartTime:
mock_plan_svc = _make_plan_svc()
mock_asset_repo = MagicMock()
mock_asset_repo.get = MagicMock(
side_effect=lambda aid: _make_mock_asset(aid, 30.0)
)
mock_asset_repo.get = MagicMock(side_effect=lambda aid: _make_mock_asset(aid, 30.0))
body = ClipsFromAssetsRequest(asset_ids=["a1", "a2"], required_clips_count=2)
with _patch_segments(_segments(2)), patch(
"app.api.routes.templates_editor.clips._calc_random_start_time",
side_effect=[12.5, 18.0],
) as mock_calc:
with (
_patch_segments(_segments(2)),
patch(
"app.api.routes.templates_editor.clips._calc_random_start_time",
side_effect=[12.5, 18.0],
) as mock_calc,
):
create_clips_from_assets_editor(
template_id="tpl-001",
body=body,
@@ -315,9 +306,7 @@ class TestEditorClipsDurationAndStartTime:
mock_plan_svc = _make_plan_svc()
mock_asset_repo = MagicMock()
mock_asset_repo.get = MagicMock(
return_value=_make_mock_asset("a1", 30.0)
)
mock_asset_repo.get = MagicMock(return_value=_make_mock_asset("a1", 30.0))
# 3 个 segment 都用同一个素材
body = ClipsFromAssetsRequest(asset_ids=["a1", "a1", "a1"])
@@ -346,23 +335,22 @@ class TestEditorClipsDurationAndStartTime:
mock_plan_svc = _make_plan_svc()
mock_asset_repo = MagicMock()
mock_asset_repo.get = MagicMock(
return_value=_make_mock_asset("a1", 30.0)
)
mock_asset_repo.get = MagicMock(return_value=_make_mock_asset("a1", 30.0))
body = ClipsFromAssetsRequest(asset_ids=["a1"], required_clips_count=3)
captured_used_segments = []
def fake_calc(asset_id, clip_duration, asset_durations, used_segments):
captured_used_segments.append(
{aid: list(segs) for aid, segs in (used_segments or {}).items()}
)
captured_used_segments.append({aid: list(segs) for aid, segs in (used_segments or {}).items()})
return (len(captured_used_segments) - 1) * 5.0
with _patch_segments(_segments(3)), patch(
"app.api.routes.templates_editor.clips._calc_random_start_time",
side_effect=fake_calc,
with (
_patch_segments(_segments(3)),
patch(
"app.api.routes.templates_editor.clips._calc_random_start_time",
side_effect=fake_calc,
),
):
create_clips_from_assets_editor(
template_id="tpl-001",
@@ -399,9 +387,12 @@ class TestEditorClipsErrorHandling:
body = ClipsFromAssetsRequest(asset_ids=["missing-asset"])
with _patch_segments(_segments(1)), patch(
"app.api.routes.templates_editor.clips._calc_random_start_time",
return_value=None,
with (
_patch_segments(_segments(1)),
patch(
"app.api.routes.templates_editor.clips._calc_random_start_time",
return_value=None,
),
):
with pytest.raises(HTTPException) as exc_info:
create_clips_from_assets_editor(
@@ -429,9 +420,7 @@ class TestEditorClipsErrorHandling:
mock_plan_svc.create_clip = MagicMock(side_effect=ValueError("计划不存在"))
mock_asset_repo = MagicMock()
mock_asset_repo.get = MagicMock(
return_value=_make_mock_asset("a1", 30.0)
)
mock_asset_repo.get = MagicMock(return_value=_make_mock_asset("a1", 30.0))
body = ClipsFromAssetsRequest(asset_ids=["a1"])
@@ -464,9 +453,7 @@ class TestMarkClipsReadyAfterCreation:
mock_plan_svc = _make_plan_svc()
mock_asset_repo = MagicMock()
mock_asset_repo.get = MagicMock(
side_effect=lambda aid: _make_mock_asset(aid, {"a1": 30.0}[aid])
)
mock_asset_repo.get = MagicMock(side_effect=lambda aid: _make_mock_asset(aid, {"a1": 30.0}[aid]))
body = ClipsFromAssetsRequest(asset_ids=["a1"], required_clips_count=2)