test(p3-1): 第28波 CosyVoiceService 单测 (51个) #735

Merged
xiaoxia merged 1 commits from test/p3-1-wave28-cosyvoice-service-tests into develop 2026-07-22 22:42:11 +08:00
Owner

P3-1 第二十八波

CosyVoiceService 单元测试,51个用例全部通过。

覆盖范围

  • 初始化配置:base_url规范化、自定义参数覆盖、上下文管理器、自有client关闭
  • prefix清洗:字母数字保留、特殊字符去除、超长截断、空串默认值
  • submit_clone_task:成功返回、空url/无key校验、voice_name清洗、语言转换、URL预签名(成功/失败回退)、无voice_id报错、自定义目标模型
  • query_voice_status:成功、空id校验、无key校验
  • check_task_status:兼容接口委托
  • poll_clone_task:成功、UNDEPLOYED失败、超时、次数超限、未知状态继续
  • clone_voice:完整流程、提交即OK直接返回
  • submit_synthesize_task:成功、空text/voice_id/无key校验、无audio_url报错、自定义参数透传
  • poll_synthesize_task:同步接口不支持轮询
  • synthesize_speech:返回SynthesizeResult对象
  • _call_api重试:5xx重试成功/耗尽、401/403不重试、400(JSON/文本)不重试、超时重试、请求错误重试、其他状态码不重试、Bearer token、URL拼接
  • 预置音色:list_preset_voices委托
  • 错误类:AuthError/TimeoutError继承关系
51 passed in 2.59s
## P3-1 第二十八波 CosyVoiceService 单元测试,51个用例全部通过。 ### 覆盖范围 - **初始化配置**:base_url规范化、自定义参数覆盖、上下文管理器、自有client关闭 - **prefix清洗**:字母数字保留、特殊字符去除、超长截断、空串默认值 - **submit_clone_task**:成功返回、空url/无key校验、voice_name清洗、语言转换、URL预签名(成功/失败回退)、无voice_id报错、自定义目标模型 - **query_voice_status**:成功、空id校验、无key校验 - **check_task_status**:兼容接口委托 - **poll_clone_task**:成功、UNDEPLOYED失败、超时、次数超限、未知状态继续 - **clone_voice**:完整流程、提交即OK直接返回 - **submit_synthesize_task**:成功、空text/voice_id/无key校验、无audio_url报错、自定义参数透传 - **poll_synthesize_task**:同步接口不支持轮询 - **synthesize_speech**:返回SynthesizeResult对象 - **_call_api重试**:5xx重试成功/耗尽、401/403不重试、400(JSON/文本)不重试、超时重试、请求错误重试、其他状态码不重试、Bearer token、URL拼接 - **预置音色**:list_preset_voices委托 - **错误类**:AuthError/TimeoutError继承关系 ``` 51 passed in 2.59s ```
xiaoxia added 1 commit 2026-07-22 18:50:42 +08:00
test(p3-1): add CosyVoiceService unit tests (51 cases)
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1m1s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 56s
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 37s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 1m50s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 43s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 58s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m9s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 54s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 50s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 6m30s
AI Code Review / AI Code Review (pull_request) Successful in 6m42s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m28s
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 / Integration Tests (pull_request) Failing after 2m59s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 30m0s
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 51s
323056bc5f
Cover init config normalization, prefix sanitization, clone submit/query/poll,
synthesize submit, retry logic (5xx/timeout/request_error), auth errors,
parameter validation, context manager, and error class hierarchy.
auto-approve-bot approved these changes 2026-07-22 19:23:14 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-07-22 19:23:15 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。

🚀 预览环境已部署

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

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

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

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

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

代码审查结果 - PR #735

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

💡 建议(1个可选)

  1. tests/unit/test_cosyvoice_service.py (TestSanitizePrefix):建议补充测试用例以验证文档注释中的行为。
    • test_strips_special_chars 方法中,注释提到“中文isalnum返回True会保留”,但当前的测试用例 hello-world!@# 仅包含 ASCII 字符。建议增加一个包含中文的输入(如 test_中文123)作为测试用例,以确保代码对中文字符的处理符合预期,防止未来重构导致回归。

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


🤖 由 AI 代码审查机器人自动生成 | 2026-07-22 19:27:45 | 模型:

## 代码审查结果 - PR #735 ### ⚠️ 问题(0个需要修改) ### 💡 建议(1个可选) 1. **tests/unit/test_cosyvoice_service.py (TestSanitizePrefix)**:建议补充测试用例以验证文档注释中的行为。 - 在 `test_strips_special_chars` 方法中,注释提到“中文isalnum返回True会保留”,但当前的测试用例 `hello-world!@#` 仅包含 ASCII 字符。建议增加一个包含中文的输入(如 `test_中文123`)作为测试用例,以确保代码对中文字符的处理符合预期,防止未来重构导致回归。 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-22 19:27:45 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia merged commit adb3a2e269 into develop 2026-07-22 22:42:11 +08:00

🗑️ 预览环境已清理

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

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

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