Files
jundot--omlx/tests/test_psutil_compat.py
wehub-resource-sync e9a2f726c9
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled
CI / test (3.13) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:29:51 +08:00

57 lines
2.0 KiB
Python

# SPDX-License-Identifier: Apache-2.0
"""Tests for psutil_compat memory telemetry."""
from unittest.mock import patch
import omlx.utils.psutil_compat as psutil_compat
def test_virtual_memory_uses_macos_host_stats():
with (
patch("omlx.utils.psutil_compat.sys.platform", "darwin"),
patch(
"omlx.utils.psutil_compat.get_macos_vm_stats",
return_value={
"free": 2 * 1024**3,
"inactive": 3 * 1024**3,
"active": 4 * 1024**3,
"wired": 1 * 1024**3,
},
),
patch("omlx.utils.psutil_compat.get_total_memory", return_value=16 * 1024**3),
):
vm = psutil_compat.virtual_memory()
assert vm.total == 16 * 1024**3
assert vm.available == 5 * 1024**3
assert vm.free == 2 * 1024**3
assert vm.inactive == 3 * 1024**3
assert vm.active == 4 * 1024**3
assert vm.wired == 1 * 1024**3
def test_virtual_memory_vm_stat_fallback_is_cached():
vm_stat_output = """Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free: 10.
Pages active: 20.
Pages inactive: 30.
Pages wired down: 40.
"""
with (
patch("omlx.utils.psutil_compat.sys.platform", "darwin"),
patch("omlx.utils.psutil_compat.get_macos_vm_stats", return_value=None),
patch("omlx.utils.psutil_compat.get_total_memory", return_value=1024**3),
patch("omlx.utils.psutil_compat._cached_slow_virtual_memory", None),
patch("omlx.utils.psutil_compat._cached_slow_virtual_memory_at", 0.0),
patch(
"omlx.utils.psutil_compat.subprocess.check_output",
return_value=vm_stat_output,
) as mock_check_output,
):
first = psutil_compat.virtual_memory()
second = psutil_compat.virtual_memory()
assert first.available == (10 + 30) * 4096
assert second.available == first.available
mock_check_output.assert_called_once()