test: 更新封面 stub 单测,验证 SVG data URI 占位图
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 41s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m6s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m25s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m25s
AI Code Review / AI Code Review (pull_request) Successful in 1m35s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m46s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m44s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m29s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m29s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m35s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m29s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 7m41s
CI/CD Pipeline / CI Gate (pull_request) Failing after 7s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 887h18m4s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 887h18m4s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 887h18m5s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 887h18m5s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 887h18m5s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 887h25m45s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 887h25m46s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 887h26m25s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 887h26m25s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 887h26m29s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 887h26m25s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 887h26m27s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 887h26m29s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 887h51m31s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 887h59m12s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 887h59m56s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 41s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m6s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m25s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m25s
AI Code Review / AI Code Review (pull_request) Successful in 1m35s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m46s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m44s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m29s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m29s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m35s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m29s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 7m41s
CI/CD Pipeline / CI Gate (pull_request) Failing after 7s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 887h18m4s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 887h18m4s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 887h18m5s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 887h18m5s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 887h18m5s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 887h25m45s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 887h25m46s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 887h26m25s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 887h26m25s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 887h26m29s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 887h26m25s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 887h26m27s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 887h26m29s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 887h51m31s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 887h59m12s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 887h59m56s
- 更新 test_cover_type_manual_with_frame_time:断言 SVG data URI + 手动选帧文字 - 更新 test_cover_type_ai_frame:断言 SVG data URI + 封面生成中文字 - 新增 test_stub_returns_svg_data_uri:验证 stub 不含 /api/v1/ 路径 - 新增 test_manual_stub_returns_svg_data_uri:验证 manual 模式 SVG 占位图
This commit is contained in:
@@ -431,7 +431,8 @@ class TestAiCoverService:
|
||||
result = _call_ai_cover_service("plan1", ["a1"], "manual", frame_time=5.5)
|
||||
assert result["type"] == "manual"
|
||||
assert result["frame_time"] == 5.5
|
||||
assert "5.5" in result["image_url"]
|
||||
assert result["image_url"].startswith("data:image/svg+xml,")
|
||||
assert "手动选帧" in result["image_url"]
|
||||
|
||||
def test_cover_type_ai_frame(self):
|
||||
with patch("shared.ai_service.time.sleep"):
|
||||
@@ -440,7 +441,8 @@ class TestAiCoverService:
|
||||
assert result["type"] == "ai_frame"
|
||||
assert result["frame_time"] == 5.0
|
||||
assert result["confidence"] == 0.9
|
||||
assert "plan1" in result["image_url"]
|
||||
assert result["image_url"].startswith("data:image/svg+xml,")
|
||||
assert "封面生成中" in result["image_url"]
|
||||
|
||||
def test_cover_type_ai_regenerate(self):
|
||||
with patch("shared.ai_service.time.sleep"):
|
||||
@@ -451,3 +453,20 @@ class TestAiCoverService:
|
||||
with patch("shared.ai_service.time.sleep"):
|
||||
result = _call_ai_cover_service("plan1", ["a1"], "ai_frame")
|
||||
assert 1.0 <= result["frame_time"] <= 10.0
|
||||
|
||||
def test_stub_returns_svg_data_uri(self):
|
||||
"""stub 降级返回 SVG data URI,不含任何后端 API 路径."""
|
||||
with patch("shared.ai_service.time.sleep"):
|
||||
result = _call_ai_cover_service("plan1", ["a1"], "ai_frame")
|
||||
assert result["image_url"].startswith("data:image/svg+xml,")
|
||||
assert "/api/v1/" not in result["image_url"]
|
||||
assert "1080" in result["image_url"]
|
||||
assert "1920" in result["image_url"]
|
||||
|
||||
def test_manual_stub_returns_svg_data_uri(self):
|
||||
"""manual 模式返回 SVG data URI 占位图."""
|
||||
with patch("shared.ai_service.time.sleep"):
|
||||
result = _call_ai_cover_service("plan1", ["a1"], "manual", frame_time=3.0)
|
||||
assert result["image_url"].startswith("data:image/svg+xml,")
|
||||
assert "/api/v1/" not in result["image_url"]
|
||||
assert "手动选帧" in result["image_url"]
|
||||
|
||||
Reference in New Issue
Block a user