diff --git a/tests/usage/__init__.py b/tests/usage/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/tests/usage/test_usage.py b/tests/usage/test_usage.py new file mode 100644 index 0000000000000..0d781af0f3680 --- /dev/null +++ b/tests/usage/test_usage.py @@ -0,0 +1,21 @@ +# SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: Copyright contributors to the vLLM project + +from vllm.usage.usage_lib import is_usage_stats_enabled + + +def test_is_usage_stats_enabled(monkeypatch): + with monkeypatch.context() as m: + # Reset the global state to ensure test isolation. + # The original value will be restored after the test. + monkeypatch.setattr("vllm.usage.usage_lib._USAGE_STATS_ENABLED", False) + + m.setattr("vllm.envs.VLLM_DO_NOT_TRACK", True) + m.setattr("vllm.envs.VLLM_NO_USAGE_STATS", True) + m.setattr("os.path.exists", lambda x: True) + assert is_usage_stats_enabled() is False + + m.setattr("vllm.envs.VLLM_DO_NOT_TRACK", False) + m.setattr("vllm.envs.VLLM_NO_USAGE_STATS", False) + m.setattr("os.path.exists", lambda x: False) + assert is_usage_stats_enabled() is True diff --git a/vllm/usage/usage_lib.py b/vllm/usage/usage_lib.py index 69226763aafe6..0f66e98fab9a0 100644 --- a/vllm/usage/usage_lib.py +++ b/vllm/usage/usage_lib.py @@ -30,7 +30,7 @@ logger = init_logger(__name__) _config_home = envs.VLLM_CONFIG_ROOT _USAGE_STATS_JSON_PATH = os.path.join(_config_home, "usage_stats.json") _USAGE_STATS_DO_NOT_TRACK_PATH = os.path.join(_config_home, "do_not_track") -_USAGE_STATS_ENABLED = None +_USAGE_STATS_ENABLED = False _USAGE_STATS_SERVER = envs.VLLM_USAGE_STATS_SERVER _GLOBAL_RUNTIME_DATA = dict[str, str | int | bool]() @@ -50,7 +50,7 @@ def set_runtime_usage_data(key: str, value: str | int | bool) -> None: _GLOBAL_RUNTIME_DATA[key] = value -def is_usage_stats_enabled(): +def is_usage_stats_enabled() -> bool: """Determine whether or not we can send usage stats to the server. The logic is as follows: - By default, it should be enabled. @@ -62,7 +62,7 @@ def is_usage_stats_enabled(): - $HOME/.config/vllm/do_not_track """ global _USAGE_STATS_ENABLED - if _USAGE_STATS_ENABLED is None: + if not _USAGE_STATS_ENABLED: do_not_track = envs.VLLM_DO_NOT_TRACK no_usage_stats = envs.VLLM_NO_USAGE_STATS do_not_track_file = os.path.exists(_USAGE_STATS_DO_NOT_TRACK_PATH)