# PR #44248 完整报告

- 仓库：`vllm-project/vllm`
- 标题：[BugFix][CI] Fix added `_has_module` tests
- 合并时间：2026-06-02 05:23
- 原文链接：http://prhub.com.cn/vllm-project/vllm/pull/44248

---

# 执行摘要

- 一句话：修复 _has_module 测试用例覆盖范围
- 推荐动作：本 PR 是简单的测试修复，技术价值较低，但反映了合入流程中测试未同步更新的问题。建议团队在快速合入时确保测试与实现一致，可考虑增加合入检查步骤。

# 功能与动机

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

# 实现拆解

在 `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`（模块 工具函数；类别 test；类型 test-coverage；符号 test_returns_false_on_os_error_during_import, test_returns_false_on_unexpected_error_during_import）: 唯一变更文件，删除了两个与当前实现不匹配的测试方法，确保测试套件通过。

关键符号：test_returns_false_on_os_error_during_import, test_returns_false_on_unexpected_error_during_import

## 关键源码片段

### `tests/utils_/test_import_utils.py`

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

```python
# 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

```

# 评论区精华

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

- 暂无高价值评论线程

# 风险与影响

- 风险：低风险。仅删除测试用例，生产代码不受影响。但需注意删除的测试覆盖了 `OSError` 和 `RuntimeError` 路径，如果将来异常处理逻辑再次扩展，这些测试可能重新有用。当前风险可控。
- 影响：直接影响：修复了因 #44035 引入的 CI 测试失败。间接影响：减少了对非标准异常路径的测试覆盖。对用户无感知，对开发团队而言是必要的清理。
- 风险标记：测试覆盖降低

# 关联脉络

- PR #44035 [BugFix] Fix `_has_module` to verify native deps via trial import: 本 PR 直接修复了 #44035 合入后引入的测试失败，因 #44035 收窄了异常捕获但未同步更新测试。