Mechanical: ruff format, and ruff check --fix with the rule set every NAPALM driver uses (E, F, I, UP, B at line length 100, Python 3.10). What ruff cannot fix comes in the next commit.
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
"""`get_system_identity`: the node's SMBIOS identity, what ties it to its BMC.
|
|
|
|
The command, its parse and the placeholder filter are napalm-device-types'; the driver
|
|
only carries the command over its exec path, which runs as root.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from unittest.mock import patch
|
|
|
|
from napalm_device_types import SYSTEM_IDENTITY_COMMAND, SystemIdentityMixin
|
|
|
|
from napalm_proxmox.driver import ProxmoxDriver
|
|
|
|
# pve-dual, a Supermicro X10DRL-i: the product serial is the board vendor's default.
|
|
WIRE = "IDBEGIN\n31303043-534D-C40C-7A72-6F1300000000\n0123456789\nZM155S026022\nIDEND\n"
|
|
|
|
|
|
def test_the_driver_declares_the_contract():
|
|
assert issubclass(ProxmoxDriver, SystemIdentityMixin)
|
|
|
|
|
|
def test_it_runs_the_shared_command(driver):
|
|
with patch.object(driver, "_exec_ssh_command", return_value=WIRE) as exec_:
|
|
identity = driver.get_system_identity()
|
|
|
|
exec_.assert_called_once_with(SYSTEM_IDENTITY_COMMAND)
|
|
assert identity == {
|
|
"system_uuid": "31303043-534d-c40c-7a72-6f1300000000",
|
|
"product_serial": "",
|
|
"board_serial": "ZM155S026022",
|
|
}
|