test(wave187): speed_config 调速配置 +77测 #1148

Merged
xiaoxia merged 2 commits from test/wave187-speed-config into develop 2026-07-30 00:23:59 +08:00
Owner

wave187: speed_config 调速配置单测

  • 模块:packages/domain/speed_config.py
  • 新增测试:77个
  • 覆盖:
    • SpeedConfig 数据类(默认值/parse/clamp/属性方法)
    • build_video_filter 视频调速滤镜
    • build_audio_filter 音频调速滤镜(atempo多级串联)
    • atempo 拆分验证(乘积等于目标速度、每级在合法范围)
    • adjust_duration 时长计算
    • build_clip_speed_filter 便捷方法
    • resolve_clip_speed 片段速度解析
  • 本地验证:ruff + black + pytest 77 passed
## wave187: speed_config 调速配置单测 - 模块:packages/domain/speed_config.py - 新增测试:77个 - 覆盖: - SpeedConfig 数据类(默认值/parse/clamp/属性方法) - build_video_filter 视频调速滤镜 - build_audio_filter 音频调速滤镜(atempo多级串联) - atempo 拆分验证(乘积等于目标速度、每级在合法范围) - adjust_duration 时长计算 - build_clip_speed_filter 便捷方法 - resolve_clip_speed 片段速度解析 - 本地验证:ruff + black + pytest 77 passed
xiaoxia added 1 commit 2026-07-29 18:44:05 +08:00
test(wave187): speed_config 调速配置 +77测
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 37s
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 / Validate - Type Check (mypy) (pull_request) Successful in 1m15s
CI/CD Pipeline / Validate - Code Quality (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / PR Build API Image (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Web Image (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been cancelled
CI/CD Pipeline / Staging API Integration 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 / ACR Image Cleanup (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
AI Code Review / AI Code Review (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been cancelled
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 46s
7d1bfe74cf

🚀 预览环境已部署

项目 详情
PR号 #1148
预览链接 https://pr-1148.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1148 | | 预览链接 | [https://pr-1148.preview.xiaoxiajianji.com](https://pr-1148.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot added 1 commit 2026-07-29 18:52:30 +08:00
style: auto-format with black + isort + prettier [skip ci-format-check]
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 / Check if frontend-only change (pull_request) Successful in 33s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 54s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m35s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m29s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m52s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m31s
AI Code Review / AI Code Review (pull_request) Successful in 3m49s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 5m57s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m32s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m23s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m23s
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 / Integration Tests (pull_request) Successful in 7m25s
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 / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 51s
CI/CD Pipeline / Production Browser E2E (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 32s
9af146fd8b
Collaborator

【阻塞级判定】

  • 是否存在阻塞级问题:否
  • 阻塞级问题数量:0 个

📊 审查概览

  • 整体评价:通过
  • 建议级问题数量:1 个

🔴 阻塞级问题(必须修复)

💡 改进建议(不阻塞合并)

  1. [tests/unit/domain/test_speed_config.py: 418] 领域常量一致性问题
    • 具体内容:TestResolveClipSpeed.test_very_small_positive_uses_it 测试用例中,断言 resolve_clip_speed({"playback_speed": 0.1}) 返回 0.1。然而,文件顶部定义的 MIN_SPEED 常量为 0.25,且 TestSpeedConfigParse 中测试了小于 0.25 的速度(如 0.1)应被钳制到 MIN_SPEED。建议确认 resolve_clip_speed 函数的业务逻辑是否应与 SpeedConfig 保持一致(即拒绝或钳制小于 0.25 的值),以避免领域模型行为不一致。

良好实践

  1. 边界条件覆盖全面:测试用例详细覆盖了极大值、极小值、0值、负值以及非预期类型输入(如字符串、None),体现了高质量的测试意识。
  2. 浮点数精度处理test_is_original_very_closetest_format_precision 等用例关注了浮点数比较精度和格式化输出,避免了常见的浮点数测试陷阱。
  3. 代码结构清晰:使用类对不同测试模块进行分组(如 TestSpeedConfigParse, TestBuildAudioFilter),可读性极高。
  4. 逻辑验证严谨TestAtempoStages 中通过提取速度值并验证乘积等于目标速度,有效验证了复杂的多级滤镜拆分逻辑。

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


🤖 由 AI 代码审查机器人自动生成 | 2026-07-29 11:04:23 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:否 - 阻塞级问题数量:0 个 ### 📊 审查概览 - 整体评价:通过 - 建议级问题数量:1 个 ### 🔴 阻塞级问题(必须修复) 无 ### 💡 改进建议(不阻塞合并) 1. **[tests/unit/domain/test_speed_config.py: 418] 领域常量一致性问题** - 具体内容:`TestResolveClipSpeed.test_very_small_positive_uses_it` 测试用例中,断言 `resolve_clip_speed({"playback_speed": 0.1})` 返回 `0.1`。然而,文件顶部定义的 `MIN_SPEED` 常量为 `0.25`,且 `TestSpeedConfigParse` 中测试了小于 `0.25` 的速度(如 `0.1`)应被钳制到 `MIN_SPEED`。建议确认 `resolve_clip_speed` 函数的业务逻辑是否应与 `SpeedConfig` 保持一致(即拒绝或钳制小于 0.25 的值),以避免领域模型行为不一致。 ### ✅ 良好实践 1. **边界条件覆盖全面**:测试用例详细覆盖了极大值、极小值、0值、负值以及非预期类型输入(如字符串、None),体现了高质量的测试意识。 2. **浮点数精度处理**:`test_is_original_very_close` 和 `test_format_precision` 等用例关注了浮点数比较精度和格式化输出,避免了常见的浮点数测试陷阱。 3. **代码结构清晰**:使用类对不同测试模块进行分组(如 `TestSpeedConfigParse`, `TestBuildAudioFilter`),可读性极高。 4. **逻辑验证严谨**:`TestAtempoStages` 中通过提取速度值并验证乘积等于目标速度,有效验证了复杂的多级滤镜拆分逻辑。 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-29 11:04:23 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia merged commit 042cae7a61 into develop 2026-07-30 00:23:59 +08:00

🗑️ 预览环境已清理

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

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

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