26 lines
1.3 KiB
Python
26 lines
1.3 KiB
Python
import sys
|
|||
|
|
import unittest
|
||
|
|
from pathlib import Path
|
||
|
|
from unittest.mock import patch
|
||
|
|
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "plugin"))
|
||
|
|
import worker
|
||
|
|
|
||
|
|
|
||
|
|
class StorageMetricsTests(unittest.TestCase):
|
||
|
|
def test_per_disk_history_has_own_observation_and_keeps_hidden_collection(self):
|
||
|
|
value = {"timestamp": 100, "machine": {}, "display": {"alerts": []}, "system": {
|
||
|
|
"storage_inventory_observed_at": 90, "storage_inventory_error": False,
|
||
|
|
"storage_inventory": [
|
||
|
|
{"id": "a"*32, "name": "Data", "filesystem": "ext4", "visible": False, "state": "mounted", "capacity_bytes": 1000, "used_bytes": 0, "free_bytes": 1000, "used_percent": 0},
|
||
|
|
{"id": "b"*32, "name": "USB", "state": "unmounted", "capacity_bytes": 2000},
|
||
|
|
]}}
|
||
|
|
with patch.object(worker, "request", return_value=value):
|
||
|
|
result = worker.collect({})
|
||
|
|
self.assertEqual(len(result["resources"]), 3)
|
||
|
|
self.assertEqual(len(result["metrics"]), 4)
|
||
|
|
self.assertTrue(all(m["observed_at"] == 90 for m in result["metrics"]))
|
||
|
|
self.assertEqual(result["metrics"][1]["value"], 0)
|
||
|
|
value["system"]["storage_inventory_error"] = True
|
||
|
|
with patch.object(worker, "request", return_value=value):
|
||
|
|
self.assertEqual(worker.collect({})["metrics"], [])
|