chore: adopt the NAPALM driver standard #9

Merged
christianmanivong merged 4 commits from chore/driver-standard into main 2026-10-23 10:22:33 +00:00
2 changed files with 7 additions and 18 deletions
Showing only changes of commit b306b64673 - Show all commits

No files matched your search

+3 -2
View File
@@ -155,7 +155,8 @@ class ZyxelVMGDriver(ResidentialGatewayDriver):
"Input_Account": self.username, "Input_Account": self.username,
"Input_Passwd": base64.b64encode(self.password.encode("ascii")).decode("ascii"), "Input_Passwd": base64.b64encode(self.password.encode("ascii")).decode("ascii"),
"RememberPassword": 0, "RememberPassword": 0,
"SHA512_password": False, # A flag telling the gateway how Input_Passwd is encoded, not a password.
"SHA512_password": False, # nosec B105
} }
enc_payload = crypto.encrypt_json(login_data) enc_payload = crypto.encrypt_json(login_data)
@@ -169,7 +170,7 @@ class ZyxelVMGDriver(ResidentialGatewayDriver):
resp.raise_for_status() resp.raise_for_status()
result = crypto.decrypt_response(resp.json()) result = crypto.decrypt_response(resp.json())
except (requests.RequestException, json.JSONDecodeError, TypeError, KeyError) as e: except (requests.RequestException, json.JSONDecodeError, TypeError, KeyError) as e:
raise ConnectionException(f"Login failed at {self._base_url}: {e}") raise ConnectionException(f"Login failed at {self._base_url}: {e}") from e
if result.get("result") != "ZCFG_SUCCESS": if result.get("result") != "ZCFG_SUCCESS":
raise ConnectionException( raise ConnectionException(
+4 -16
View File
@@ -146,11 +146,8 @@ class TestZyxelVMGDriver:
sess = MagicMock() sess = MagicMock()
sess.get.side_effect = requests.ConnectionError("unreachable") sess.get.side_effect = requests.ConnectionError("unreachable")
mock_session.return_value = sess mock_session.return_value = sess
try: with pytest.raises(ConnectionException):
self.driver.open() self.driver.open()
assert False, "Expected ConnectionException"
except ConnectionException:
pass
def test_close(self): def test_close(self):
self._setup_mocked_http() self._setup_mocked_http()
@@ -298,19 +295,13 @@ class TestZyxelVMGDriver:
def test_load_replace_candidate_raises(self): def test_load_replace_candidate_raises(self):
self._setup_mocked_http() self._setup_mocked_http()
try: with pytest.raises(NotImplementedError):
self.driver.load_replace_candidate() self.driver.load_replace_candidate()
assert False, "Expected NotImplementedError"
except NotImplementedError:
pass
def test_load_merge_candidate_raises(self): def test_load_merge_candidate_raises(self):
self._setup_mocked_http() self._setup_mocked_http()
try: with pytest.raises(NotImplementedError):
self.driver.load_merge_candidate() self.driver.load_merge_candidate()
assert False, "Expected NotImplementedError"
except NotImplementedError:
pass
def test_ping_not_implemented(self): def test_ping_not_implemented(self):
self._setup_mocked_http() self._setup_mocked_http()
@@ -325,11 +316,8 @@ class TestZyxelVMGDriver:
from napalm.base.exceptions import ConnectionClosedException from napalm.base.exceptions import ConnectionClosedException
self.driver._session = None self.driver._session = None
try: with pytest.raises(ConnectionClosedException):
self.driver._dal_query("PINGTEST", {}) self.driver._dal_query("PINGTEST", {})
assert False, "Expected ConnectionClosedException"
except ConnectionClosedException:
pass
def test_parse_port_forwards_dal(self): def test_parse_port_forwards_dal(self):
self._setup_mocked_http() self._setup_mocked_http()