Prhub

#44248 [BugFix][CI] Fix added `_has_module` tests

原始 PR 作者 njhill 合并时间 2026-06-02 05:23 文件变更 1 提交数 1 评论 0 代码增减 +0 / -36

执行摘要

修复 _has_module 测试用例覆盖范围

PR #44035 为了提升 CI 稳定性快速合入,但合入前代码审查中收窄了异常捕获范围(仅捕获特定异常),而对应的测试用例仍包含针对已移除异常类型的测试,导致测试失败。本 PR 旨在修复这些测试,恢复 CI 稳定性。

本 PR 是简单的测试修复,技术价值较低,但反映了合入流程中测试未同步更新的问题。建议团队在快速合入时确保测试与实现一致,可考虑增加合入检查步骤。

讨论亮点

无讨论。PR 由作者直接提交并快速被审核者批准,无评论。

实现拆解

tests/utils_/test_import_utils.py 中删除两个测试方法:

  1. test_returns_false_on_os_error_during_import:该测试模拟 OSError 场景,但 #44035 的最终实现不再捕获 OSError,因此该测试失效。
  2. test_returns_false_on_unexpected_error_during_import:该测试模拟 RuntimeError 等非导入异常,同样不再被捕获。
    删除后测试套件与生产代码行为一致,无其他文件变更。
文件 模块 状态 重要度
tests/utils_/test_import_utils.py 工具函数 modified 6.17

关键符号

test_returns_false_on_os_error_during_import test_returns_false_on_unexpected_error_during_import

关键源码片段

tests/utils_/test_import_utils.py test-coverage

唯一变更文件,删除了两个与当前实现不匹配的测试方法,确保测试套件通过。

# tests/utils_/test_import_utils.py
# 删除了 test_returns_false_on_os_error_during_import 和 test_returns_false_on_unexpected_error_during_import
# 以下为删除的测试方法内容(仅作参考,实际已删除)# def test_returns_false_on_os_error_during_import(self):
# """Some shared-library failures surface as ``OSError``."""
# fake_spec = MagicMock()
# with (
# patch("vllm.utils.import_utils.importlib.util.find_spec", return_value=fake_spec),
# patch("vllm.utils.import_utils.importlib.import_module", side_effect=OSError("cannot load library")),
# ):
# assert _has_module("fake_native_ext_os") is False# def test_returns_false_on_unexpected_error_during_import(self):
# """A broken extension may raise a non-import error (e.g. ``RuntimeError``)."""
# fake_spec = MagicMock()
# with (
# patch("vllm.utils.import_utils.importlib.util.find_spec", return_value=fake_spec),
# patch("vllm.utils.import_utils.importlib.import_module", side_effect=RuntimeError("CUDA driver version is insufficient")),
# ):
# assert _has_module("fake_broken_ext") is False

评论区精华

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

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

风险与影响

低风险。仅删除测试用例,生产代码不受影响。但需注意删除的测试覆盖了 OSErrorRuntimeError 路径,如果将来异常处理逻辑再次扩展,这些测试可能重新有用。当前风险可控。

直接影响:修复了因 #44035 引入的 CI 测试失败。间接影响:减少了对非标准异常路径的测试覆盖。对用户无感知,对开发团队而言是必要的清理。

测试覆盖降低

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论