initial commit

This commit is contained in:
Christian Manivong
2026-05-29 09:24:39 +02:00
commit f3ecf14c8d
18 changed files with 4206 additions and 0 deletions
+63
View File
@@ -0,0 +1,63 @@
"""Tests for get_environment."""
from __future__ import annotations
import pytest
from tests.conftest import _build_mock_api, NODE_STATUS
from unittest.mock import patch
from napalm_proxmox.driver import ProxmoxDriver
class TestGetEnvironment:
def test_cpu_usage_present(self, driver):
result = driver.get_environment()
assert "0" in result["cpu"]
assert result["cpu"]["0"]["%usage"] == pytest.approx(12.0, abs=0.1)
def test_memory_total(self, driver):
result = driver.get_environment()
assert result["memory"]["available_ram"] == 137438953472
assert result["memory"]["used_ram"] == 68719476736
def test_fans_empty_when_no_sensors(self, driver):
result = driver.get_environment()
assert isinstance(result["fans"], dict)
def test_temperature_with_sensors(self):
from tests.conftest import _build_mock_api, NODE_STATUS
from unittest.mock import patch
from napalm_proxmox.driver import ProxmoxDriver
sensors_data = [
{"name": "CPU Package", "value": "55.0"},
{"name": "GPU Core", "value": "92.0"},
]
mock_api = _build_mock_api(sensors=sensors_data)
drv = ProxmoxDriver("pve1", "root", "secret", optional_args={"verify_ssl": False})
with patch("napalm_proxmox.driver.ProxmoxAPI", return_value=mock_api):
drv.open()
result = drv.get_environment()
assert "CPU Package" in result["temperature"]
assert result["temperature"]["CPU Package"]["temperature"] == 55.0
assert result["temperature"]["CPU Package"]["is_alert"] is False
assert result["temperature"]["CPU Package"]["is_critical"] is False
assert "GPU Core" in result["temperature"]
assert result["temperature"]["GPU Core"]["is_alert"] is True
assert result["temperature"]["GPU Core"]["is_critical"] is False
def test_temperature_critical(self):
from tests.conftest import _build_mock_api
from unittest.mock import patch
from napalm_proxmox.driver import ProxmoxDriver
sensors_data = [{"name": "NVMe", "value": "98.0"}]
mock_api = _build_mock_api(sensors=sensors_data)
drv = ProxmoxDriver("pve1", "root", "secret", optional_args={"verify_ssl": False})
with patch("napalm_proxmox.driver.ProxmoxAPI", return_value=mock_api):
drv.open()
result = drv.get_environment()
assert result["temperature"]["NVMe"]["is_critical"] is True