style: auto-format with black + isort + prettier [skip ci-format-check]
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web 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 / PR Build API Image (pull_request) Successful in 31s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 33s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 1m44s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m46s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m53s
CI/CD Pipeline / Validate - Style (pull_request) Failing after 1m59s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m5s
CI/CD Pipeline / Validate - Security (pull_request) Has been cancelled
CI/CD Pipeline / Unit 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
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 2m1s
AI Code Review / AI Code Review (pull_request) Has been cancelled
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web 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 / PR Build API Image (pull_request) Successful in 31s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 33s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 1m44s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m46s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m53s
CI/CD Pipeline / Validate - Style (pull_request) Failing after 1m59s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m5s
CI/CD Pipeline / Validate - Security (pull_request) Has been cancelled
CI/CD Pipeline / Unit 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
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 2m1s
AI Code Review / AI Code Review (pull_request) Has been cancelled
This commit is contained in:
@@ -9,9 +9,9 @@ from unittest.mock import MagicMock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
# ── helpers ───────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
def _make_svc():
|
||||
"""构造 EditPlanService,mock 掉 DB/repos。"""
|
||||
from app.services.edit_plan_service import EditPlanService
|
||||
@@ -165,22 +165,20 @@ class TestEnsureVariantPlans:
|
||||
|
||||
def test_count_1_with_voice(self):
|
||||
svc = self._setup_svc()
|
||||
result = svc.ensure_variant_plans(
|
||||
"src", 1, ["a1"], voice_durations=[30.0]
|
||||
)
|
||||
result = svc.ensure_variant_plans("src", 1, ["a1"], voice_durations=[30.0])
|
||||
assert result == ["plan_v0"]
|
||||
svc.apply_voice_duration_to_plan.assert_called_once_with("plan_v0", 30.0)
|
||||
|
||||
def test_count_3_with_voice(self):
|
||||
svc = self._setup_svc()
|
||||
svc.reselect_plan_for_variant = MagicMock(side_effect=[
|
||||
MagicMock(id="plan_v1"),
|
||||
MagicMock(id="plan_v2"),
|
||||
])
|
||||
|
||||
result = svc.ensure_variant_plans(
|
||||
"src", 3, ["a1", "a2"], voice_durations=[30.0, 20.0, 15.0]
|
||||
svc.reselect_plan_for_variant = MagicMock(
|
||||
side_effect=[
|
||||
MagicMock(id="plan_v1"),
|
||||
MagicMock(id="plan_v2"),
|
||||
]
|
||||
)
|
||||
|
||||
result = svc.ensure_variant_plans("src", 3, ["a1", "a2"], voice_durations=[30.0, 20.0, 15.0])
|
||||
assert len(result) == 3
|
||||
assert result[0] == "plan_v0"
|
||||
# v0 配音
|
||||
@@ -191,7 +189,5 @@ class TestEnsureVariantPlans:
|
||||
def test_voice_apply_failure_not_blocking(self):
|
||||
svc = self._setup_svc()
|
||||
svc.apply_voice_duration_to_plan.side_effect = RuntimeError("boom")
|
||||
result = svc.ensure_variant_plans(
|
||||
"src", 1, ["a1"], voice_durations=[30.0]
|
||||
)
|
||||
result = svc.ensure_variant_plans("src", 1, ["a1"], voice_durations=[30.0])
|
||||
assert result == ["plan_v0"]
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from unittest.mock import MagicMock, patch, call
|
||||
from unittest.mock import MagicMock, call, patch
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
# ── 辅助 ──────────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
def _make_user():
|
||||
mu = MagicMock()
|
||||
mu.user.id = "u1"
|
||||
|
||||
@@ -14,7 +14,6 @@ from __future__ import annotations
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
from fastapi import HTTPException
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user