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"], [])