test: P3-1 第50波单元测试(generation_task/edit_plan/edit_template/edit_plan_clip,+86) #838

Merged
xiaoxia merged 1 commits from test/wave50-domain-generationtask-editplan-edit-template into develop 2026-07-24 18:58:21 +08:00
Owner

内容

新增4个领域模块的单元测试,合计 +86 个用例。

模块列表

  1. test_generation_task.py (33个) - GenerationTask 生成任务领域模型

    • create 参数校验(project_id/template_id/asset_library_id 组合校验)
    • 状态查询(is_terminal / is_completed / is_failed / is_running)
    • 状态流转(pending→running→completed / failed,失败重试回滚)
    • 日志系统(append_log / get_logs,200条上限自动截断)
    • 非法状态转换校验 + transition_to 字符串参数
  2. test_edit_plan.py (11个) - EditPlan 剪辑计划实体

    • create 正常创建 / 空格strip / 空值校验
  3. test_edit_template.py (12个) - EditTemplate 剪辑模板实体

    • create 名称校验 / editing_mode 枚举校验
    • 空 mode 默认 one_take / 非法 mode 抛异常
  4. test_edit_plan_clip.py (30个) - EditPlanClip 剪辑片段实体

    • create 参数校验(plan_id/clip_type/时间/速度边界)
    • playback_speed 边界钳制(0.25~4.0,<=0 默认1.0)
    • 状态流转(pending→ready→rendered/failed)
    • end_time / has_asset 计算属性
    • assign_asset 方法
## 内容 新增4个领域模块的单元测试,合计 +86 个用例。 ### 模块列表 1. **test_generation_task.py** (33个) - GenerationTask 生成任务领域模型 - create 参数校验(project_id/template_id/asset_library_id 组合校验) - 状态查询(is_terminal / is_completed / is_failed / is_running) - 状态流转(pending→running→completed / failed,失败重试回滚) - 日志系统(append_log / get_logs,200条上限自动截断) - 非法状态转换校验 + transition_to 字符串参数 2. **test_edit_plan.py** (11个) - EditPlan 剪辑计划实体 - create 正常创建 / 空格strip / 空值校验 3. **test_edit_template.py** (12个) - EditTemplate 剪辑模板实体 - create 名称校验 / editing_mode 枚举校验 - 空 mode 默认 one_take / 非法 mode 抛异常 4. **test_edit_plan_clip.py** (30个) - EditPlanClip 剪辑片段实体 - create 参数校验(plan_id/clip_type/时间/速度边界) - playback_speed 边界钳制(0.25~4.0,<=0 默认1.0) - 状态流转(pending→ready→rendered/failed) - end_time / has_asset 计算属性 - assign_asset 方法
xiaoxia added 1 commit 2026-07-24 18:15:08 +08:00
test: P3-1 第50波单元测试(generation_task/edit_plan/edit_template/edit_plan_clip,+86)
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 4s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 1m32s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m22s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 27s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m23s
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 30s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 28s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m5s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m35s
AI Code Review / AI Code Review (pull_request) Successful in 3m42s
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 / PR Build API Image (pull_request) Successful in 4m47s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
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 / Integration Tests (pull_request) Successful in 3m26s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m52s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 9m40s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 7s
50f81909fd
新增4个领域模块单测:
- test_generation_task.py: GenerationTask生成任务领域模型(32个)
  - create参数校验 + 字段strip
  - 状态查询(is_terminal/is_completed/is_failed/is_running)
  - 状态流转(pending→running→completed/failed,重试回滚)
  - 日志系统(append_log/get_logs,200条上限截断)
  - 非法状态转换校验
- test_edit_plan.py: EditPlan剪辑计划实体(11个)
- test_edit_template.py: EditTemplate剪辑模板实体(12个)
  - editing_mode枚举校验
- test_edit_plan_clip.py: EditPlanClip剪辑片段(30个)
  - create参数校验 + playback_speed边界钳制
  - 状态流转(pending→ready→rendered/failed)
  - end_time/has_asset属性 + assign_asset方法

合计 +86 个测试用例,全部通过。
Collaborator

代码审查结果 - PR #838

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

💡 建议((0个可选)

良好实践

  1. 测试覆盖全面:代码不仅覆盖了正常的创建流程,还详细测试了边界条件(如 playback_speed 的钳制逻辑)、非法输入(负数、空字符串)以及状态机的非法转换。
  2. 健壮性测试test_get_logs_corrupted_json 测试了 JSON 解析失败时的降级处理,体现了对防御性编程的重视。
  3. 数据清洗验证:多处测试验证了字符串参数的自动去空格(strip)功能,确保了领域实体输入数据的规范性。
  4. 清晰的测试结构:测试类和方法命名语义明确,遵循了标准的 pytest 测试规范,易于阅读和维护。

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


🤖 由 AI 代码审查机器人自动生成 | 2026-07-24 10:29:40 | 模型:

## 代码审查结果 - PR #838 ### ⚠️ 问题(0个需要修改) 无 ### 💡 建议((0个可选) 无 ### ✅ 良好实践 1. **测试覆盖全面**:代码不仅覆盖了正常的创建流程,还详细测试了边界条件(如 `playback_speed` 的钳制逻辑)、非法输入(负数、空字符串)以及状态机的非法转换。 2. **健壮性测试**:`test_get_logs_corrupted_json` 测试了 JSON 解析失败时的降级处理,体现了对防御性编程的重视。 3. **数据清洗验证**:多处测试验证了字符串参数的自动去空格(strip)功能,确保了领域实体输入数据的规范性。 4. **清晰的测试结构**:测试类和方法命名语义明确,遵循了标准的 pytest 测试规范,易于阅读和维护。 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-24 10:29:40 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia merged commit 78afa40458 into develop 2026-07-24 18:58:21 +08:00
xiaoxia deleted branch test/wave50-domain-generationtask-editplan-edit-template 2026-07-24 18:58:21 +08:00

🗑️ 预览环境已清理

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

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

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