test(wave104): extract template_clip_converter domain module + 62 unit tests #982

Closed
xiaoxia wants to merge 1 commits from test/wave104-template-clip-converter into develop
Owner

从 edit_template_service.py 抽出模板片段转换纯逻辑模块 template_clip_converter

变更内容

  • 新增 `packages/domain/template_clip_converter.py(289行)
    • safe_parse_transition_effect / safe_parse_clip_type 安全枚举解析
    • filter_clip_config / filter_plan_config_to_template 字段过滤
    • clip_to_template_clip_config / clips_to_template_clip_configs 片段转换
    • clip_config_to_snapshot / clip_configs_to_snapshots 快照序列化
    • snapshot_to_template_clip_config / snapshots_to_template_clip_configs 快照反序列化
    • validate_template_name 名称校验
  • 修改 edit_template_service.py:959→813行(-146行,-15%)
    • 消除 3 处重复转换逻辑(save_plan_as_template / publish_template_from_draft / rollback_to_version)
    • 全部改为调用新模块对应函数

测试

  • 新增 62 个单测(纯逻辑全覆盖 + 往返一致性验证
  • 原有 52 个 edit_template_service 测试全部通过
  • 全套模板相关 442 passed
从 edit_template_service.py 抽出模板片段转换纯逻辑模块 `template_clip_converter` ### 变更内容 - **新增** `packages/domain/template_clip_converter.py(289行) - `safe_parse_transition_effect` / `safe_parse_clip_type` 安全枚举解析 - `filter_clip_config` / `filter_plan_config_to_template` 字段过滤 - `clip_to_template_clip_config` / `clips_to_template_clip_configs` 片段转换 - `clip_config_to_snapshot` / `clip_configs_to_snapshots` 快照序列化 - `snapshot_to_template_clip_config` / `snapshots_to_template_clip_configs` 快照反序列化 - `validate_template_name` 名称校验 - **修改** `edit_template_service.py`:959→813行(-146行,-15%) - 消除 3 处重复转换逻辑(save_plan_as_template / publish_template_from_draft / rollback_to_version) - 全部改为调用新模块对应函数 ### 测试 - 新增 62 个单测(纯逻辑全覆盖 + 往返一致性验证 - 原有 52 个 edit_template_service 测试全部通过 - 全套模板相关 442 passed
xiaoxia added 1 commit 2026-07-26 22:11:37 +08:00
test(wave104): extract template_clip_converter domain module + 62 unit tests
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 18s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m15s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m6s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 55s
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 16s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 11s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 1m49s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 56s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m5s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m23s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 2m2s
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 / 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 / Canary Release to Production (pull_request) Has been skipped
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m12s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 2m27s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m2s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 11s
28745c401d
从 edit_template_service.py (959→813行, -15%) 抽出模板片段转换纯逻辑:
- safe_parse_transition_effect / safe_parse_clip_type 安全枚举解析
- filter_clip_config / filter_plan_config_to_template 字段过滤
- clip_to_template_clip_config / clips_to_template_clip_configs 片段转换
- clip_config_to_snapshot / clip_configs_to_snapshots 快照序列化
- snapshot_to_template_clip_config / snapshots_to_template_clip_configs 快照反序列化
- validate_template_name 名称校验

消除 3 处重复代码 (save_plan_as_template / publish_template_from_draft / rollback_to_version)
验证: 114 passed (52原有 + 62新增),全套模板相关 442 passed

🚀 预览环境已部署

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

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

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

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

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

代码审查结果 - PR #982

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

💡 建议(0个可选)


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


🤖 由 AI 代码审查机器人自动生成 | 2026-07-26 14:17:46 | 模型:

## 代码审查结果 - PR #982 ### ⚠️ 问题(0个需要修改) 无 ### 💡 建议(0个可选) 无 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-26 14:17:46 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia closed this pull request 2026-07-27 15:26:14 +08:00

🗑️ 预览环境已清理

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

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

🗑️ **预览环境已清理** PR #982 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Some checks are pending
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 18s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m15s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m6s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 55s
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 16s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 11s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 1m49s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 56s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m5s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m23s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 2m2s
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 / 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 / Canary Release to Production (pull_request) Has been skipped
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m12s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 2m27s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m2s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 11s

Pull request closed

Sign in to join this conversation.