test: wave214 text_splitter +33单测(TTS长文本分段工具) #1185

Merged
xiaoxia merged 1 commits from test/wave214-text-splitter into develop 2026-07-30 08:20:03 +08:00
Owner

变更内容

为 TTS 长文本分段工具 packages/application/tts_job/text_splitter.py 补充 33 个单元测试。

测试覆盖

  • 空文本边界: 空串/纯空白/None输入
  • 短文本: 单段返回、exactly max_chars
  • 句子边界: 。!?;\n .!?; 中英文标点
  • 强制截断: 超长句硬切、长短混合
  • 短段合并: 小于50字短段合并减少API调用
  • 中文场景: 段落级长文本分段
  • 自定义max_chars: 小/大/0/1各种边界
  • 内容完整性: 所有字符保留、无空段、strip正确
  • 边缘case: 单字符、纯标点、数字符号、中英混合、连续标点

验证

  • 33/33 全绿
  • ruff + black 通过
## 变更内容 为 TTS 长文本分段工具 `packages/application/tts_job/text_splitter.py` 补充 33 个单元测试。 ## 测试覆盖 - **空文本边界**: 空串/纯空白/None输入 - **短文本**: 单段返回、exactly max_chars - **句子边界**: 。!?;\n .!?; 中英文标点 - **强制截断**: 超长句硬切、长短混合 - **短段合并**: 小于50字短段合并减少API调用 - **中文场景**: 段落级长文本分段 - **自定义max_chars**: 小/大/0/1各种边界 - **内容完整性**: 所有字符保留、无空段、strip正确 - **边缘case**: 单字符、纯标点、数字符号、中英混合、连续标点 ## 验证 - ✅ 33/33 全绿 - ✅ ruff + black 通过
xiaoxia added 1 commit 2026-07-30 07:48:32 +08:00
test: wave214 add 33 unit tests for text_splitter (TTS text segmentation)
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 / Check if frontend-only change (pull_request) Successful in 49s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m55s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 2m12s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m56s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m48s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m6s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m26s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 5m5s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m44s
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 / Integration Tests (pull_request) Successful in 2m54s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 5m20s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 5m10s
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 1m45s
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 53s
2979e8aa17
- 空文本/空白/None边界
- 短文本单段
- 句子边界拆分(。!?;\n.!?;)
- 超长句强制截断
- 短段合并逻辑
- 中文长文本分段
- 自定义max_chars
- 内容完整性验证
- 混合中英文/数字/连续标点等边界

🚀 预览环境已部署

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

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

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

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

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

【阻塞级判定】

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

📊 审查概览

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

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

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

  1. [tests/unit/test_text_splitter.py: 19] test_none_not_allowed 异常类型过于具体

    • 具体内容:测试用例中明确断言抛出 AttributeError。这通常意味着实现代码内部直接调用了 None.some_method()。这种测试与实现细节耦合过紧,如果未来实现改为 if not text: raise TypeError 或使用 str(text) 进行预处理,测试将意外失败。建议改为捕获更通用的 Exception(如果确认必须抛异常),或者更好的做法是测试 split_text(None) == [](如果期望容错处理)。
  2. [tests/unit/test_text_splitter.py: 167] test_max_chars_zero 断言覆盖不足

    • 具体内容:当 max_chars=0 时,仅断言 len(result) > 0 较为薄弱。根据注释“每加一个字符就触发强制分段”,预期行为应该是每个字符都被切分。建议修改为 assert len(result) == len(text) 以验证分段逻辑的正确性,而非仅仅验证未崩溃。
  3. [tests/unit/test_text_splitter.py: 197] test_chinese_paragraph 多余的字符串操作

    • 具体内容:代码中使用了 text.replace(" ", ""),但定义的 text 变量(多行字符串拼接)本身并不包含空格。Python 的隐式字符串拼接不会自动添加空格。该操作是多余的,建议直接使用 assert combined == text,保持代码简洁。

良好实践

  • 测试类结构划分清晰,按功能(空文本、短文本、边界、强制分段、合并等)分类,易于维护。
  • 覆盖了多种边界情况(如 max_chars=1、纯标点、中英文混合),测试覆盖率较高。
  • 使用了 pytest 和清晰的 docstring,提升了测试的可读性。

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


🤖 由 AI 代码审查机器人自动生成 | 2026-07-29 23:59:31 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:否 - 阻塞级问题数量:0 个 ### 📊 审查概览 - 整体评价:通过 - 建议级问题数量:3 个 ### 🔴 阻塞级问题(必须修复) 无 ### 💡 改进建议(不阻塞合并) 1. **[tests/unit/test_text_splitter.py: 19] `test_none_not_allowed` 异常类型过于具体** - 具体内容:测试用例中明确断言抛出 `AttributeError`。这通常意味着实现代码内部直接调用了 `None.some_method()`。这种测试与实现细节耦合过紧,如果未来实现改为 `if not text: raise TypeError` 或使用 `str(text)` 进行预处理,测试将意外失败。建议改为捕获更通用的 `Exception`(如果确认必须抛异常),或者更好的做法是测试 `split_text(None) == []`(如果期望容错处理)。 2. **[tests/unit/test_text_splitter.py: 167] `test_max_chars_zero` 断言覆盖不足** - 具体内容:当 `max_chars=0` 时,仅断言 `len(result) > 0` 较为薄弱。根据注释“每加一个字符就触发强制分段”,预期行为应该是每个字符都被切分。建议修改为 `assert len(result) == len(text)` 以验证分段逻辑的正确性,而非仅仅验证未崩溃。 3. **[tests/unit/test_text_splitter.py: 197] `test_chinese_paragraph` 多余的字符串操作** - 具体内容:代码中使用了 `text.replace(" ", "")`,但定义的 `text` 变量(多行字符串拼接)本身并不包含空格。Python 的隐式字符串拼接不会自动添加空格。该操作是多余的,建议直接使用 `assert combined == text`,保持代码简洁。 ### ✅ 良好实践 - 测试类结构划分清晰,按功能(空文本、短文本、边界、强制分段、合并等)分类,易于维护。 - 覆盖了多种边界情况(如 `max_chars=1`、纯标点、中英文混合),测试覆盖率较高。 - 使用了 `pytest` 和清晰的 docstring,提升了测试的可读性。 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-29 23:59:31 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia reviewed 2026-07-30 08:19:41 +08:00
xiaoxia left a comment
Author
Owner

纯单测PR,approve。

纯单测PR,approve。
xiaoxia merged commit 80bc63d58b into develop 2026-07-30 08:20:03 +08:00

🗑️ 预览环境已清理

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

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

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