from napalm_opnsense.opnsense import OPNsenseDriver def main(): driver = OPNsenseDriver( hostname="test.local", username="api_key", password="api_secret", optional_args={ "base_url": "https://test.local", "verify": False, }, ) # Mock API responses to avoid real network calls def fake_get(path: str): if path == "/api/core/system/status": return { "hostname": "opnsense01", "version": "24.7", "model": "OPNsense", "serial": "ABC123", "uptime": 12345, } if path == "/api/interfaces/overview/export": return { "interfaces": [ { "name": "em0", "up": True, "enabled": True, "descr": "LAN", "mac": "AA:BB:CC:DD:EE:FF", "speed_mbps": 1000, "mtu": 1500, } ] } if path == "/api/interfaces/addresses/export": return { "items": [ {"interface": "em0", "address": "192.0.2.10", "prefix": 24}, {"interface": "em0", "address": "2001:db8::1", "prefix": 64}, ] } return {} # Monkeypatch before open() driver._get = fake_get # type: ignore driver.open() print("Facts:") print(driver.get_facts()) print("\nInterfaces:") print(driver.get_interfaces()) print("\nInterfaces IP:") print(driver.get_interfaces_ip()) driver.close() if __name__ == "__main__": main()