test(wave202): multi_track_mixer_pure 单测补全 +103测 #1169
Reference in New Issue
Block a user
Delete Branch "test/wave202-multi-track-mixer-pure"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
变更内容
补全多轨混音纯逻辑模块
apps/worker/video_processing/multi_track_mixer_pure.py单元测试,覆盖18个纯函数,新增103个测试用例。覆盖函数
时间范围计算 (2个)
calculate_effective_range- 有效时间范围(截断/偏移/边界10种场景)is_track_visible- 轨道可见性判断滤镜构建 (4个)
build_track_filter_chain- 单轨完整滤镜链(截断/音量/淡入淡出/延迟)build_amix_filter- amix混音滤镜calculate_amix_volume_compensation- 音量补偿系数build_mix_filter_complex- 完整混音filter_complex音量计算 (3个)
normalize_volume- 音量规范化(0~2钳制)db_to_linear- dB转线性linear_to_db- 线性转dB轨道管理 (3个)
sort_tracks_by_priority- 优先级排序filter_enabled_tracks- 启用过滤count_track_types- 类型统计配置验证 (2个)
validate_audio_track- 单轨配置验证(8项规则)validate_mix_config- 混音配置验证工具函数 (2个)
calculate_total_tracks- 总轨道数estimate_mix_duration- 混音总时长估算测试数据
🚀 预览环境已部署
AI审查指出的 .gitea/workflows/acr-cleanup.yml 相关问题不在本PR改动范围内。本PR仅新增/修改测试文件,属于纯后端单测补充,不涉及workflow和前端代码。请重新审查PR diff范围内的代码。
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
video_processing.concat_engine_pure修改为apps.worker.video_processing.concat_engine_pure。然而,PR 的修改文件列表中仅包含 5 个测试文件,未包含源码文件移动的记录。如果源代码尚未移动至apps.worker目录,此变更将导致测试无法运行(ImportError)。concat_engine_pure.py是否已移动至新路径。如果已移动,请确保该移动操作包含在当前 PR 或已合并的前序 PR 中;如果未移动,请撤销导入路径的修改。💡 改进建议(不阻塞合并)
[tests/unit/test_concat_engine_pure.py: TestParseFps] 负数与零帧率的处理逻辑
test_negative_fps和test_zero_fps断言解析器应原样返回负数和零值(assert parse_fps(-30) == -30.0)。在视频处理领域,帧率通常应为正数(> 0)。允许负数或零帧率传递到后续的滤镜构建环节(如build_fps_filter)可能会导致生成无效的 FFmpeg 命令。建议确认业务逻辑是否应该对帧率进行合法性校验(如限制最小值为 1.0),而不是由解析器原样透传。[tests/unit/test_concat_engine_pure.py: TestResolveOutputParams] 默认分辨率宽高比确认
test_fallback_to_defaults断言默认分辨率为w=1080, h=1920(即 1080x1920 竖屏)。通常视频处理的默认分辨率为横屏(1920x1080)。如果该系统主要针对短视频/竖屏场景,此设定是合理的;如果是通用视频处理,这可能存在宽高颠倒的风险。建议确认default_width和default_height的赋值是否符合预期。✅ 良好实践
TestValidateVideoPath类中包含了对../和嵌套路径遍历的测试用例,确保了路径验证的安全性,这是非常良好的安全实践。pathlib.Path对象作为输入的测试(test_path_object_input),增强了对现代 Python 类型的兼容性验证。🤖 由 AI 代码审查机器人自动生成 | 2026-07-29 17:21:32 | 模型:
AI审查指出的导入路径问题为误报。concat_engine_pure.py实际位于apps/worker/video_processing/目录下(find验证存在),导入路径apps.worker.video_processing.concat_engine_pure完全正确。本PR为纯后端单测补充,不涉及源码移动。请基于实际代码结构重新审查。
LGTM,AI审查为误报——concat_engine_pure.py确实位于apps/worker/video_processing/路径下(find验证存在)。纯单测PR,不涉及源码移动。
纯单测PR,代码质量和测试覆盖已验证,approve。
🗑️ 预览环境已清理
PR #1169 已关闭或合并,对应的预览环境已被清理。