test(unit): 第64波 - speed + chroma_key + color_grade 引擎配置 (+96) #860

Merged
xiaoxia merged 1 commits from test/wave64-speed-chroma-color-grade-config into develop 2026-07-25 08:13:00 +08:00
Owner

第64波单元测试补充

覆盖3个引擎的配置+纯逻辑,+96个用例全部通过:

模块 文件 用例数 说明
调速引擎 test_speed_engine.py 42 SpeedConfig解析/钳制 + is_original + 视频/音频滤镜生成 + atempo多级拆分 + 时长计算
绿幕抠像 test_chroma_key_engine.py 21 ChromaKeyConfig解析+边界钳制 + has_effect + 预设校验
调色引擎 test_color_grade_engine.py 33 ColorGradeConfig解析 + resolve_params预设/覆盖/钳制 + has_effect + 8个预设

本地验证

pytest tests/unit/test_speed_engine.py tests/unit/test_chroma_key_engine.py tests/unit/test_color_grade_engine.py -v
96 passed in 4.04s
### 第64波单元测试补充 覆盖3个引擎的配置+纯逻辑,+96个用例全部通过: | 模块 | 文件 | 用例数 | 说明 | |------|------|--------|------| | 调速引擎 | `test_speed_engine.py` | 42 | SpeedConfig解析/钳制 + is_original + 视频/音频滤镜生成 + atempo多级拆分 + 时长计算 | | 绿幕抠像 | `test_chroma_key_engine.py` | 21 | ChromaKeyConfig解析+边界钳制 + has_effect + 预设校验 | | 调色引擎 | `test_color_grade_engine.py` | 33 | ColorGradeConfig解析 + resolve_params预设/覆盖/钳制 + has_effect + 8个预设 | ### 本地验证 ``` pytest tests/unit/test_speed_engine.py tests/unit/test_chroma_key_engine.py tests/unit/test_color_grade_engine.py -v 96 passed in 4.04s ```
xiaoxia added 1 commit 2026-07-25 00:15:24 +08:00
test(unit): 第64波 - speed + chroma_key + color_grade 引擎配置
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 18s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 1m31s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 50s
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) Successful in 41s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 59s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 33s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 35s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m8s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m5s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m30s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m41s
AI Code Review / AI Code Review (pull_request) Successful in 8m28s
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 / Unit Tests (pull_request) Successful in 3m43s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m22s
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
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 50s
2d61c71ad5
- test_speed_engine: 调速引擎,42个用例
  - SpeedConfig.parse + clamp 边界钳制
  - is_original 判断
  - build_video_filter / build_audio_filter
  - _split_atempo_stages 多级拆分
  - adjust_duration 时长计算

- test_chroma_key_engine: 绿幕抠像引擎,21个用例
  - ChromaKeyConfig.from_dict 解析+钳制
  - has_effect 判断
  - 5个预设校验

- test_color_grade_engine: 调色引擎,33个用例
  - ColorGradeConfig.from_dict 解析
  - resolve_params 预设+自定义+边界钳制
  - has_effect 判断
  - 8个预设校验

+96
Collaborator

代码审查结果 - PR #860

⚠️ 问题(1个需要修改)

  1. tests/unit/test_color_grade_engine.py 第117行has_effect 方法的语义与 test_chroma_key_engine.py 中的实现存在逻辑不一致。
    • 问题描述:在 test_color_grade_engine.pytest_disabled_still_checks_params 测试中,断言 enabled=Falsehas_effect() 仍可能返回 True(只要参数非默认)。而在 test_chroma_key_engine.pytest_disabled_no_effect 测试中,断言 enabled=Falsehas_effect() 必须返回 False。这种不一致会导致调用方(如上层业务逻辑或UI)在判断“是否应用效果”时产生混淆,可能导致调色引擎在禁用状态下仍被错误调用,或者抠像引擎在参数有效时被错误跳过。
    • 修改建议:统一 has_effect 的语义。通常建议 has_effect 应综合判断 enabled 状态和参数有效性,即 enabled=True 且参数非默认时才返回 True。请确认 ColorGradeConfig 的行为是否需要修正以匹配 ChromaKeyConfig,反之亦然。

💡 建议(1个可选)

  1. tests/unit/test_color_grade_engine.py 第55行:建议补充测试用例覆盖边界值。
    • 建议描述:虽然测试了 invalid_preset_ignored,但建议增加对 preset 参数为 None 或非字符串类型(如数字)的测试,以确保 from_dict 方法在处理各种异常输入时的健壮性。

格式检查通过 | 逻辑审查需修改 | 性能良好


🤖 由 AI 代码审查机器人自动生成 | 2026-07-24 16:39:57 | 模型:

## 代码审查结果 - PR #860 ### ⚠️ 问题(1个需要修改) 1. **tests/unit/test_color_grade_engine.py 第117行**:`has_effect` 方法的语义与 `test_chroma_key_engine.py` 中的实现存在逻辑不一致。 - **问题描述**:在 `test_color_grade_engine.py` 的 `test_disabled_still_checks_params` 测试中,断言 `enabled=False` 时 `has_effect()` 仍可能返回 `True`(只要参数非默认)。而在 `test_chroma_key_engine.py` 的 `test_disabled_no_effect` 测试中,断言 `enabled=False` 时 `has_effect()` 必须返回 `False`。这种不一致会导致调用方(如上层业务逻辑或UI)在判断“是否应用效果”时产生混淆,可能导致调色引擎在禁用状态下仍被错误调用,或者抠像引擎在参数有效时被错误跳过。 - **修改建议**:统一 `has_effect` 的语义。通常建议 `has_effect` 应综合判断 `enabled` 状态和参数有效性,即 `enabled=True` 且参数非默认时才返回 `True`。请确认 `ColorGradeConfig` 的行为是否需要修正以匹配 `ChromaKeyConfig`,反之亦然。 ### 💡 建议(1个可选) 1. **tests/unit/test_color_grade_engine.py 第55行**:建议补充测试用例覆盖边界值。 - **建议描述**:虽然测试了 `invalid_preset_ignored`,但建议增加对 `preset` 参数为 `None` 或非字符串类型(如数字)的测试,以确保 `from_dict` 方法在处理各种异常输入时的健壮性。 --- ✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 性能良好 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-24 16:39:57 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia merged commit 17cf970ae6 into develop 2026-07-25 08:13:00 +08:00
xiaoxia deleted branch test/wave64-speed-chroma-color-grade-config 2026-07-25 08:13:00 +08:00

🗑️ 预览环境已清理

PR #860 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #860 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.