test(wave149): video_concat 单测补全 +65 #1072

Closed
xiaoxia wants to merge 1 commits from test/wave149-video-concat into develop
Owner

变更说明

video_concat 视频拼接领域模型单测补全,新增65个测试用例。

测试覆盖

  • 常量 (4): MAX_CONCAT_SEGMENTS/ALLOWED_EXTENSIONS/DEMUXER_PARAMS
  • ConcatSegment (8): 基础/完整创建、is_valid、effective_duration(正/0/负)
  • ConcatSegment.from_dict (13): None/空dict/非dict/list、video_path、start_time(正/负/无效/字符串)、duration(正/负/无效/整数)、has_audio(true/false/默认)
  • ConcatConfig 属性 (11): 默认创建、带片段创建、has_effect(0/1/2段)、valid_segment_count、total_segments别名、first_valid_segment(有效/无效/空)、estimated_total_duration(3种)
  • ConcatConfig.from_config_dict (19): None/空/非dict、segments各种场景、输出尺寸(正常/负/无效)、output_fps、force_reencode、transition、transition_duration(正常/最小/无效)
  • clamp_segments (5): 低于上限不变、超过上限截断、默认max、空列表、刚好上限

本地验证

  • pytest: 65 passed
  • black: 已格式化
## 变更说明 video_concat 视频拼接领域模型单测补全,新增65个测试用例。 ## 测试覆盖 - **常量** (4): MAX_CONCAT_SEGMENTS/ALLOWED_EXTENSIONS/DEMUXER_PARAMS - **ConcatSegment** (8): 基础/完整创建、is_valid、effective_duration(正/0/负) - **ConcatSegment.from_dict** (13): None/空dict/非dict/list、video_path、start_time(正/负/无效/字符串)、duration(正/负/无效/整数)、has_audio(true/false/默认) - **ConcatConfig 属性** (11): 默认创建、带片段创建、has_effect(0/1/2段)、valid_segment_count、total_segments别名、first_valid_segment(有效/无效/空)、estimated_total_duration(3种) - **ConcatConfig.from_config_dict** (19): None/空/非dict、segments各种场景、输出尺寸(正常/负/无效)、output_fps、force_reencode、transition、transition_duration(正常/最小/无效) - **clamp_segments** (5): 低于上限不变、超过上限截断、默认max、空列表、刚好上限 ## 本地验证 - pytest: 65 passed - black: 已格式化
xiaoxia added 1 commit 2026-07-28 11:00:36 +08:00
test(wave149): add video_concat unit tests (+65)
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 6s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 36s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m14s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m20s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 1m55s
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 Web Image (pull_request) Successful in 29s
AI Code Review / AI Code Review (pull_request) Successful in 1m15s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 37s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m4s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m38s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m58s
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 / Unit Tests (pull_request) Successful in 2m51s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m21s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
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 / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Successful in 21s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 43m9s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m36s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
40a98e0228
- 常量: MAX_CONCAT_SEGMENTS/ALLOWED_EXTENSIONS/DEMUXER_PARAMS
- ConcatSegment: 基础/完整创建、is_valid(2种)、effective_duration(3种)
- ConcatSegment.from_dict: None/空dict/非dict/list、video_path、start_time(正/负/无效/字符串)、
  duration(正/负/无效/整数)、has_audio(true/false/默认)
- ConcatConfig: 默认创建、带片段创建、has_effect(0/1/2段)、valid_segment_count、
  total_segments别名、first_valid_segment(有效/无效/空)、estimated_total_duration
- ConcatConfig.from_config_dict: None/空/非dict、segments列表/非列表/无path/非dict、
  输出尺寸(正常/负/无效)、output_fps(正常/负)、force_reencode、
  transition(正常/默认)、transition_duration(正常/最小值/无效)
- clamp_segments: 低于上限不变、超过上限截断、默认max、空列表、刚好上限
Collaborator

【阻塞级判定】

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

📊 审查概览

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

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

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

良好实践

  1. 测试结构优化:将测试类按功能模块(常量、Segment基础、Segment工厂方法、Config基础、Config工厂方法、工具方法)进行了清晰的重新分类,代码组织更加合理,易于维护。
  2. 边界条件覆盖增强:新增了多个针对异常输入和边界值的测试用例(如 test_list_input test_at_limit_staystest_skips_non_dict_segments`),提升了测试的健壮性。
  3. 断言精度改进:在浮点数比较中使用了 pytest.approx(如 test_estimated_total_duration),这是处理浮点数断言的最佳实践,避免了精度误差导致的测试失败。
  4. 文档完善:为所有测试类和测试方法添加了清晰的中文文档字符串,显著提升了代码的可读性。

🤖 由 AI 代码审查机器人自动生成 | 2026-07-28 03:56:41 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:否 - 阻塞级问题数量:0 个 ### 📊 审查概览 - 整体评价:通过 - 建议级问题数量:0 个 ### 🔴 阻塞级问题(必须修复) 无 ### 💡 改进建议(不阻塞合并) 无 ### ✅ 良好实践 1. **测试结构优化**:将测试类按功能模块(常量、Segment基础、Segment工厂方法、Config基础、Config工厂方法、工具方法)进行了清晰的重新分类,代码组织更加合理,易于维护。 2. **边界条件覆盖增强**:新增了多个针对异常输入和边界值的测试用例(如 `test_list_input`、` `test_at_limit_stays`、`test_skips_non_dict_segments`),提升了测试的健壮性。 3. **断言精度改进**:在浮点数比较中使用了 `pytest.approx`(如 `test_estimated_total_duration`),这是处理浮点数断言的最佳实践,避免了精度误差导致的测试失败。 4. **文档完善**:为所有测试类和测试方法添加了清晰的中文文档字符串,显著提升了代码的可读性。 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-28 03:56:41 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1072 | | 预览链接 | [https://pr-1072.preview.xiaoxiajianji.com](https://pr-1072.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
xiaoxia closed this pull request 2026-07-28 12:25:55 +08:00

🗑️ 预览环境已清理

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

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

🗑️ **预览环境已清理** PR #1072 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Some checks are pending
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 6s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 36s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m14s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m20s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 1m55s
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 Web Image (pull_request) Successful in 29s
AI Code Review / AI Code Review (pull_request) Successful in 1m15s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 37s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m4s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m38s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m58s
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 / Unit Tests (pull_request) Successful in 2m51s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m21s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
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 / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Successful in 21s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 43m9s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m36s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped

Pull request closed

Sign in to join this conversation.