Files
wehub-resource-sync eec33d25b2
pre-commit / pre-commit (push) Failing after 1s
Build Wheel / build (3.11) (push) Failing after 1s
Build Wheel / build (3.12) (push) Failing after 0s
chore: import upstream snapshot with attribution
2026-07-13 12:29:08 +08:00

82 lines
3.0 KiB
Python

# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
"""Unit tests for version compatibility warnings."""
import warnings
from unittest import mock
import pytest
from vllm_omni.version import warn_if_misaligned_vllm_version
@mock.patch("vllm_omni.version.__version_tuple__", (0, 19, 0))
@mock.patch("vllm_omni.version.__version__", "0.19.0")
@mock.patch("vllm.__version_tuple__", (0, 18, 0))
@mock.patch("vllm.__version__", "0.18.0")
def test_version_mismatch_warning():
"""Ensure that we warn when vLLM and vLLM-Omni major/minor versions differ."""
with pytest.warns(RuntimeWarning, match="mismatched major/minor versions"):
warn_if_misaligned_vllm_version()
@pytest.mark.parametrize(
"vllm_ver,vllm_tuple,omni_ver,omni_tuple",
[
("0.19.0", (0, 19, 0), "0.19.5", (0, 19, 5)), # Patch differs
("0.18.0", (0, 18, 0), "dev", (0, 0, "dev")), # Omni dev
("dev", (0, 0, "dev"), "0.19.0", (0, 19, 0)), # vLLM dev
# Ensure local identifies don't matter for the warning
("0.19.0+foo", (0, 19, 0, "foo"), "0.19.5", (0, 19, 0)),
("0.19.0", (0, 19, 0), "0.19.5+bar", (0, 19, 0, "bar")),
("0.19.0+foo", (0, 19, 0, "foo"), "0.19.5+bar", (0, 19, 0, "bar")),
],
)
def test_no_warning_cases(vllm_ver, vllm_tuple, omni_ver, omni_tuple):
"""Ensure we don't warn when minor versions match or either is a dev build."""
with (
mock.patch.multiple("vllm", __version__=vllm_ver, __version_tuple__=vllm_tuple),
mock.patch.multiple("vllm_omni.version", __version__=omni_ver, __version_tuple__=omni_tuple),
):
with warnings.catch_warnings():
warnings.simplefilter("error")
warn_if_misaligned_vllm_version()
@mock.patch("vllm_omni.version.__version_tuple__", (0, 19, 0))
@mock.patch("vllm_omni.version.__version__", "0.19.0rc2.dev21")
@mock.patch("vllm.__version_tuple__", (0, 18, 0))
@mock.patch("vllm.__version__", "0.18.0")
def test_warning_contains_version_strings():
"""Ensure that the warning contains the full version strings."""
with pytest.warns(RuntimeWarning) as record:
warn_if_misaligned_vllm_version()
assert len(record) == 1
msg = str(record[0].message)
assert "0.19.0rc2.dev21" in msg
assert "0.18.0" in msg
def test_omni_plugin_loader_invokes_vllm_general_plugins_first(monkeypatch):
import vllm.plugins as vllm_plugins
import vllm_omni.plugins as omni_plugins
calls = []
monkeypatch.setattr(omni_plugins, "omni_plugins_loaded", False)
monkeypatch.setattr(vllm_plugins, "load_general_plugins", lambda: calls.append("vllm"))
monkeypatch.setattr(
omni_plugins,
"load_omni_plugins_by_group",
lambda group: {"omni": lambda: calls.append(group)},
)
omni_plugins.load_omni_general_plugins()
assert calls == ["vllm", omni_plugins.OMNI_DEFAULT_PLUGINS_GROUP]
omni_plugins.load_omni_general_plugins()
assert calls == ["vllm", omni_plugins.OMNI_DEFAULT_PLUGINS_GROUP]