test(wave101): 抽取video_filter_builder纯逻辑模块 + 73个单测 #972

Closed
xiaoxia wants to merge 1 commits from test/wave101-video-filter-builder into develop

1 Commits

Author SHA1 Message Date
CI Bot 4db9353b18 test(wave101): 抽取video_filter_builder纯逻辑模块 + 73个单测
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 11s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 58s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 58s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 53s
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 / PR Build Worker Image (pull_request) Successful in 41s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m4s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m2s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 51s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 57s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m3s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m17s
AI Code Review / AI Code Review (pull_request) Successful in 6m38s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
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 Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m30s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m38s
CI/CD Pipeline / Deploy Production (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 / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 20s
从 video_compose_service.py 抽离 FFmpeg 滤镜构建纯逻辑到 packages/domain/video_filter_builder.py:
- ClipFilterChain 数据类
- build_clip_filter: 单片段滤镜链(scale/pad/format/fps/setpts/trim)
- build_concat_filter: concat 拼接(含音频归一化)
- build_xfade_filter: xfade 转场链(fade/slide/dissolve/wipe)
- build_filter_complex: 策略选择(单片段/concat/xfade)
- chain_filters / has_audio 工具函数
- 常量与 XFADE_TRANSITION_MAP

video_compose_service.py 保留向后兼容别名(私有方法+模块级函数均委托到新模块)

测试:+73 个单测,覆盖所有边界
- 原有 42 个测试全部通过(向后兼容验证)
- 新增 73 个测试,覆盖数据类/常量/所有函数的正反向路径
- 648行 → 436行(-33%),新模块 379 行
2026-07-26 18:43:08 +08:00