执行摘要
本次 PR 删除了两个测试文件中 156 行重复的 Harmony 测试代码,精简了 CI 测试套件且不影响覆盖范围。
功能与动机
根据 PR Body,test_tools_and_reasoning 是 test_multi_turn_tools_and_reasoning 的严格子集,后者已经覆盖了相同场景;而三个 _without_functions_prefix 的流式测试的裸 recipient 名称处理逻辑已在 test_harmony_utils.py 的 extract_function_from_recipient 单元测试中得到覆盖。删除这些重复测试可以减少 CI 运行时间并降低未来维护成本。
实现拆解
- 在
tests/entrypoints/openai/chat_completion/test_serving_chat.py 中删除 test_tools_and_reasoning 方法(85 行)。该测试与 test_multi_turn_tools_and_reasoning 完全重叠。
- 在
tests/entrypoints/openai/chat_completion/test_serving_chat_stream_harmony.py 中删除三个测试方法:test_new_tool_call_without_functions_prefix、test_tool_call_argument_streaming_without_functions_prefix、test_tool_call_index_from_previous_messages_without_functions_prefix(合计约 70 行)。这三个测试针对的是 bare recipient 名称(无 functions. 前缀)的场景,而该逻辑已被 test_harmony_utils.py 中的 extract_function_from_recipient 单元测试覆盖。
- 对剩余测试中
TokenState 参数的构造进行了格式化调整(将参数换行排列),以符合代码风格规范。
变更仅涉及测试文件,未影响任何生产代码。
本次变更为纯删除操作,无新增或修改的有效逻辑源码,因此省略源码片段。被删除的测试代码已在原始 diff 中可见。
评论区精华
Reviewer yewentao256 快速批准,评论仅包含“LGTM, thanks for the work!”,无实质技术讨论点。
风险与影响
风险:低。被删除的测试均由其他更全面的测试覆盖,不会造成回归检测缺口。唯一风险是如果后续有人修改了 extract_function_from_recipient 但未运行 test_harmony_utils.py,可能漏测,但该风险原本存在。
影响:
- 对用户:无。
- 对开发团队:减少维护重复测试的成本,CI 速度略有提升。
- 对测试覆盖:核心工具调用和推理的多轮交互场景依旧被
test_multi_turn_tools_and_reasoning 覆盖;裸 recipient 名称处理已被单元测试覆盖。
关联脉络
该 PR 是 Harmony 功能线持续清理的一部分。此前 PR #44009 已移除了 Harmony 的 stop_token_ids 覆盖逻辑。两者均旨在减少特殊处理,推动 Harmony 功能走向成熟和通用化。未来可能继续看到对 Harmony 层前端代码或测试的简化。
参与讨论