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
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:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user