TestGetInterfacesIp — 4 Tests schlagen fehl (Fixture-Shape passt nicht zur Implementierung) #1

Open
opened 2026-07-15 09:25:25 +00:00 by christianmanivong · 0 comments
Owner

Gefunden: vollständiger pytest-Lauf während der get_certificates()-Entwicklung (ACME-Zertifikatsüberwachung, netork-Feature). Kein Zusammenhang mit Zertifikaten — reiner Seitenfund, bereits vor diesen Änderungen vorhanden (verifiziert via git stash + Testlauf auf dem unveränderten Arbeitsbaum).

Fehler: tests/unit/test_driver.py::TestGetInterfacesIp (4 Tests) schlägt fehl:

test_entry_count: assert 0 == 2
test_ipv4_entry: KeyError: 'em0'
test_ipv6_entry: KeyError: 'em0'
test_second_interface: KeyError

Root Cause (Verdacht, nicht abschließend verifiziert): Die Fixture ADDRESSES_RESPONSE (tests/unit/test_driver.py:64) hat die Form {"items": [{"interface": ..., "address": ..., "prefix": ...}]}. Die aktuelle Implementierung von get_interfaces_ip() (napalm_opnsense/opnsense.py:245) liest aber data.get("interfaces", []) mit den Feldern device/name und addr4/addr6 (CIDR-Strings). Beide Formen können nicht gleichzeitig stimmen — entweder ist die Fixture nach einem Rewrite der Methode nicht mehr aktualisiert worden, oder die Methode selbst spricht die falsche Response-Shape der echten OPNsense-API an (/api/interfaces/overview/export). Welche der beiden Seiten korrekt ist, müsste gegen eine echte OPNsense-Instanz verifiziert werden (analog zum Vorgehen bei get_certificates() in netork-Commit für das ACME-Feature).

Nicht gefixt — außerhalb des Scopes der aktuellen Aufgabe, daher nur dokumentiert.

Betroffene Dateien: napalm_opnsense/opnsense.py:245-290 (get_interfaces_ip), tests/unit/test_driver.py:64-70 (ADDRESSES_RESPONSE) und tests/unit/test_driver.py:270-290 (TestGetInterfacesIp)

**Gefunden:** vollständiger `pytest`-Lauf während der get_certificates()-Entwicklung (ACME-Zertifikatsüberwachung, netork-Feature). Kein Zusammenhang mit Zertifikaten — reiner Seitenfund, bereits vor diesen Änderungen vorhanden (verifiziert via `git stash` + Testlauf auf dem unveränderten Arbeitsbaum). **Fehler:** `tests/unit/test_driver.py::TestGetInterfacesIp` (4 Tests) schlägt fehl: ``` test_entry_count: assert 0 == 2 test_ipv4_entry: KeyError: 'em0' test_ipv6_entry: KeyError: 'em0' test_second_interface: KeyError ``` **Root Cause (Verdacht, nicht abschließend verifiziert):** Die Fixture `ADDRESSES_RESPONSE` (`tests/unit/test_driver.py:64`) hat die Form `{"items": [{"interface": ..., "address": ..., "prefix": ...}]}`. Die aktuelle Implementierung von `get_interfaces_ip()` (`napalm_opnsense/opnsense.py:245`) liest aber `data.get("interfaces", [])` mit den Feldern `device`/`name` und `addr4`/`addr6` (CIDR-Strings). Beide Formen können nicht gleichzeitig stimmen — entweder ist die Fixture nach einem Rewrite der Methode nicht mehr aktualisiert worden, oder die Methode selbst spricht die falsche Response-Shape der echten OPNsense-API an (`/api/interfaces/overview/export`). Welche der beiden Seiten korrekt ist, müsste gegen eine echte OPNsense-Instanz verifiziert werden (analog zum Vorgehen bei `get_certificates()` in netork-Commit für das ACME-Feature). **Nicht gefixt** — außerhalb des Scopes der aktuellen Aufgabe, daher nur dokumentiert. **Betroffene Dateien:** `napalm_opnsense/opnsense.py:245-290` (`get_interfaces_ip`), `tests/unit/test_driver.py:64-70` (`ADDRESSES_RESPONSE`) und `tests/unit/test_driver.py:270-290` (`TestGetInterfacesIp`)
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: NAPALM/napalm-opnsense#1