Prhub

#44352 [CI] Add missing vllm/parser/ CI trigger and fix test_parse.py

原始 PR 作者 sfeng33 合并时间 2026-06-03 12:05 文件变更 2 提交数 1 评论 1 代码增减 +7 / -4

执行摘要

修复 parser 测试与 CI 触发路径

PR #44279 移除了 vllm/parser/abstract_parser.py 中的 _WrappedParser 并更新了 test_streaming.py,但同期合并的 test_parse.py 仍引用了 _WrappedParser,且 CI 没有将 vllm/parser/ 作为触发路径,导致测试失败未被及时发现。

建议 PR 阅读者关注测试与 CI 触发路径的一致性,类似的源文件-测试触发关系应在添加新模块时一并配置。

讨论亮点

Reviewer MatthewBonanni 批准了该 PR,无额外评论。Issue 评论中提到文档构建失败,但与本 PR 无直接关联。

实现拆解

  1. 修复测试文件 (tests/parser/test_parse.py):将导入从 _WrappedParser 改为 DelegatingParser,并在 make_parser 函数中定义 TestParser 子类替代直接操作类属性的方式。
  2. 修复 CI 触发配置 (.buildkite/test_areas/misc.yaml):在 Async Engine, Inputs, Utils, Worker, Config (CPU) 任务的 source_file_dependencies 中添加 vllm/parser/ 路径,确保 vllm/parser/ 下的文件变更能触发该 CI job。
文件 模块 状态 重要度
tests/parser/test_parse.py 解析器 modified 5.07
.buildkite/test_areas/misc.yaml CI 配置 modified 2.76

关键符号

make_parser

关键源码片段

tests/parser/test_parse.py test-coverage

核心测试文件,修复了因 `_WrappedParser` 被移除而导致的导入和控制流错误。

# tests/parser/test_parse.py (partial)
from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
from vllm.parser.abstract_parser import DelegatingParser # 替换 _WrappedParser
from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser
from vllm.tool_parsers.hermes_tool_parser import Hermes2ProToolParser
...
def make_parser(tokenizer, reasoning=False, tool=False):
    # 改为定义 TestParser 子类,避免直接修改类属性
    class TestParser(DelegatingParser):
        reasoning_parser_cls = ThinkReasoningParser if reasoning else None
        tool_parser_cls = Hermes2ProToolParser if tool else None
    return TestParser(tokenizer)

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。变更仅涉及测试和 CI 配置,测试文件修复确保与现有 API 兼容,CI 配置变更只会增加触发条件,不会影响现有流程。

影响范围限于测试和 CI 流程。test_parse.py 将正确使用 DelegatingParser,CI 现在会在 vllm/parser/ 源码变更时自动运行相关测试,避免类似遗漏。

测试覆盖调整

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论