test(unit): 第88波 - streaming_service+asset_types+asset_usage+title_usage单测 (+63) #932

Closed
xiaoxia wants to merge 2 commits from test/wave88-streaming-service into develop
Owner

第88波单测专项

覆盖 TTS 流式合成服务 + worker core 工具函数,全部纯逻辑 mock 外部依赖。

新增测试

test_tts_streaming_service.py (26个)

  • 合成路由:空文本/超长文本/阈值边界/长短路径选择
  • 短文本流:正常流程/CosyVoice错误/普通异常/无audio_url/下载失败
  • 音频分块:单块/多块/尾块不完整/空音频/chunk拼接验证
  • 长文本分段:全部成功/首段失败/无audio_url/分段文本正确/序号唯一
  • WebSocket容错 + TTSStreamingError异常类

test_asset_types_pure.py (14个)

  • infer_mime_type_from_storage_key: mp4/mov/m4v/avi/mkv/webm/jpg/png
  • 大小写不敏感/多级路径/无扩展名/多点点文件名

test_asset_usage_deep.py (14个)

  • mark_asset_used_for_generation: 首次/递增/零值/空metadata/None字段
  • 字符串计数/其他字段保留/review_status不覆盖/空字符串处理
  • ISO时间格式/UTC时区/多次调用/负数递增

test_title_usage_pure.py (9个)

  • mark_title_used_for_generation: 无strategy_id/None/title不存在
  • 从零递增/已有值递增/None默认值/updated_at时间戳/DB查询验证

本地验证

  • 63 passed
  • black 格式化通过
## 第88波单测专项 覆盖 TTS 流式合成服务 + worker core 工具函数,全部纯逻辑 mock 外部依赖。 ### 新增测试 **test_tts_streaming_service.py (26个)** - 合成路由:空文本/超长文本/阈值边界/长短路径选择 - 短文本流:正常流程/CosyVoice错误/普通异常/无audio_url/下载失败 - 音频分块:单块/多块/尾块不完整/空音频/chunk拼接验证 - 长文本分段:全部成功/首段失败/无audio_url/分段文本正确/序号唯一 - WebSocket容错 + TTSStreamingError异常类 **test_asset_types_pure.py (14个)** - infer_mime_type_from_storage_key: mp4/mov/m4v/avi/mkv/webm/jpg/png - 大小写不敏感/多级路径/无扩展名/多点点文件名 **test_asset_usage_deep.py (14个)** - mark_asset_used_for_generation: 首次/递增/零值/空metadata/None字段 - 字符串计数/其他字段保留/review_status不覆盖/空字符串处理 - ISO时间格式/UTC时区/多次调用/负数递增 **test_title_usage_pure.py (9个)** - mark_title_used_for_generation: 无strategy_id/None/title不存在 - 从零递增/已有值递增/None默认值/updated_at时间戳/DB查询验证 ### 本地验证 - 63 passed - black 格式化通过
xiaoxia force-pushed test/wave88-streaming-service from 8f86e26818 to 23b3664f92 2026-07-26 18:26:49 +08:00 Compare
xiaoxia force-pushed test/wave88-streaming-service from 23b3664f92 to 045aa13310 2026-07-26 18:37:36 +08:00 Compare

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #932 | | 预览链接 | [https://pr-932.preview.xiaoxiajianji.com](https://pr-932.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
xiaoxia force-pushed test/wave88-streaming-service from f1db408dcd to c924c58739 2026-07-26 22:35:24 +08:00 Compare
xiaoxia added 1 commit 2026-07-26 22:36:05 +08:00
test(unit): wave88 - 清理未使用导入,修复code quality检查
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 6s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 1m16s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 49s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 29s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 52s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 30s
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 / PR Build Worker Image (pull_request) Successful in 11s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m19s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 36s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 41s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m5s
AI Code Review / AI Code Review (pull_request) Successful in 3m29s
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 / Unit Tests (pull_request) Failing after 2m50s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m28s
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 / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
74da37156e
xiaoxia force-pushed test/wave88-streaming-service from c924c58739 to 74da37156e 2026-07-26 22:36:05 +08:00 Compare
xiaoxia added 1 commit 2026-07-27 00:41:31 +08:00
fix(test): 修复test_agent_docs.py相对路径问题,从apps/api运行也能找到docs
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 27s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 41s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m11s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m11s
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 Worker Image (pull_request) Successful in 40s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m22s
AI Code Review / AI Code Review (pull_request) Successful in 1m30s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m56s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 55s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m0s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m59s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 5m55s
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 / Integration Tests (pull_request) Successful in 2m49s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 3m18s
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 / 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 13s
2a8556e343
使用 __file__ 定位项目根目录,避免依赖pytest运行目录。
修复后Unit Tests CI从apps/api目录运行也能正常通过。
Collaborator

📊 审查概览

  • 整体评价:通过
  • 严重问题数量:0 个
  • 一般建议数量:0 个

需修改的问题(严重)

💡 改进建议(一般)

良好实践

  1. [test_agent_docs.py] 路径解析优化

    • 使用 Path(__file__).parent.parent.parent 替代硬编码的相对路径,确保无论从哪个目录执行测试都能正确定位资源文件,提升了测试的鲁棒性。
  2. [test_asset_usage_deep.py] 边界条件覆盖全面

    • 测试用例充分考虑了 metadataNone、空字典、以及字段类型为字符串或负数等异常边界情况,确保了核心逻辑在处理脏数据时的稳定性。
  3. [test_tts_streaming_service.py] 完善的 Mock 与数据校验

    • 使用 AsyncMockpatch 有效隔离了 WebSocket 和外部服务依赖。
    • test_chunks_are_consecutive 中,通过拼接所有分块并与原始数据对比,严格验证了流式传输过程中数据的完整性和顺序性,这是一个非常关键且高质量的测试点。

🤖 由 AI 代码审查机器人自动生成 | 2026-07-26 16:59:21 | 模型:

### 📊 审查概览 - 整体评价:通过 - 严重问题数量:0 个 - 一般建议数量:0 个 ### ❌ 需修改的问题(严重) 无 ### 💡 改进建议(一般) 无 ### ✅ 良好实践 1. **[test_agent_docs.py] 路径解析优化** - 使用 `Path(__file__).parent.parent.parent` 替代硬编码的相对路径,确保无论从哪个目录执行测试都能正确定位资源文件,提升了测试的鲁棒性。 2. **[test_asset_usage_deep.py] 边界条件覆盖全面** - 测试用例充分考虑了 `metadata` 为 `None`、空字典、以及字段类型为字符串或负数等异常边界情况,确保了核心逻辑在处理脏数据时的稳定性。 3. **[test_tts_streaming_service.py] 完善的 Mock 与数据校验** - 使用 `AsyncMock` 和 `patch` 有效隔离了 WebSocket 和外部服务依赖。 - 在 `test_chunks_are_consecutive` 中,通过拼接所有分块并与原始数据对比,严格验证了流式传输过程中数据的完整性和顺序性,这是一个非常关键且高质量的测试点。 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-26 16:59:21 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia closed this pull request 2026-07-27 15:27:33 +08:00

🗑️ 预览环境已清理

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

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

🗑️ **预览环境已清理** PR #932 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Some checks are pending
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 27s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 41s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m11s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m11s
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 Worker Image (pull_request) Successful in 40s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m22s
AI Code Review / AI Code Review (pull_request) Successful in 1m30s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m56s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 55s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m0s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m59s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 5m55s
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 / Integration Tests (pull_request) Successful in 2m49s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 3m18s
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 / 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 13s

Pull request closed

Sign in to join this conversation.