diff --git a/inventaire.py b/inventaire.py index 1a85ac4..baa8f66 100644 --- a/inventaire.py +++ b/inventaire.py @@ -254,9 +254,10 @@ def get_bus(dev_name): def disk_type(name, rota): if name.startswith("nvme"): return "NVMe" - if str(rota) == "1": + # lsblk renvoie rota en entier (0/1) ou booléen (False/True) selon la version + if rota in (1, True, "1"): return "HDD" - if str(rota) == "0": + if rota in (0, False, "0"): return "SSD" return "inconnu" @@ -265,7 +266,8 @@ def disk_type(name, rota): def get_df_map(): dprint("lecture espace disques via df...") - out = run(["df", "--output=target,size,used,avail", "-B1"]) + # --local evite les montages réseau/NFS qui peuvent bloquer (ex: Proxmox) + out = run(["df", "--output=target,size,used,avail", "-B1", "--local"]) result = {} if not out: return result diff --git a/tests/test_inventaire.py b/tests/test_inventaire.py index ad52b21..529d7da 100644 --- a/tests/test_inventaire.py +++ b/tests/test_inventaire.py @@ -103,6 +103,27 @@ def test_bytes_human_none(): assert inventaire.bytes_human(None) == "?" +# -- disk_type ---------------------------------------------------------------- + +def test_disk_type_nvme(): + assert inventaire.disk_type("nvme0n1", None) == "NVMe" + +def test_disk_type_hdd_int(): + assert inventaire.disk_type("sda", 1) == "HDD" + +def test_disk_type_ssd_int(): + assert inventaire.disk_type("sdb", 0) == "SSD" + +def test_disk_type_hdd_bool(): + assert inventaire.disk_type("sda", True) == "HDD" + +def test_disk_type_ssd_bool(): + assert inventaire.disk_type("sdb", False) == "SSD" + +def test_disk_type_inconnu(): + assert inventaire.disk_type("sdc", None) == "inconnu" + + # ── get_smart ───────────────────────────────────────────────────────────────── SMART_PASSED = """