fix: drop stubs that claim what a phone cannot do (0.1.1)
CI / test (3.10) (push) Successful in 29s
CI / test (3.11) (push) Successful in 26s
CI / test (3.12) (push) Successful in 28s
CI / test (3.10) (pull_request) Successful in 30s
CI / test (3.11) (pull_request) Successful in 28s
CI / test (3.12) (pull_request) Successful in 29s
CI / test (3.10) (push) Successful in 29s
CI / test (3.11) (push) Successful in 26s
CI / test (3.12) (push) Successful in 28s
CI / test (3.10) (pull_request) Successful in 30s
CI / test (3.11) (pull_request) Successful in 28s
CI / test (3.12) (pull_request) Successful in 29s
get_health_metrics, get_ssids, get_radio_info and get_wireless_clients only raised NotImplementedError. They are left over from when the driver sat on AccessPointDriver, and a stub makes a capability check (callable(getattr(driver, name))) answer yes. The application polls SNMP itself (napalm-device-types docs/STRUCTURE.md); a phone has no profile to declare. Also stops tracking the .pyc and egg-info files .gitignore already lists. Closes #2
This commit is contained in:
1 parent
e80e3051fb
commit
46ff971953
12 files changed
+15
-42
No files matched your search
@@ -1,8 +0,0 @@
|
|||||||
Metadata-Version: 2.4
|
|
||||||
Name: napalm-yealink
|
|
||||||
Version: 0.1.0
|
|
||||||
Summary: NAPALM driver for Yealink IP phones and video endpoints
|
|
||||||
Requires-Python: >=3.10
|
|
||||||
Requires-Dist: napalm
|
|
||||||
Requires-Dist: napalm-device-types
|
|
||||||
Requires-Dist: requests
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
pyproject.toml
|
|
||||||
napalm_yealink/__init__.py
|
|
||||||
napalm_yealink/yealink.py
|
|
||||||
napalm_yealink.egg-info/PKG-INFO
|
|
||||||
napalm_yealink.egg-info/SOURCES.txt
|
|
||||||
napalm_yealink.egg-info/dependency_links.txt
|
|
||||||
napalm_yealink.egg-info/entry_points.txt
|
|
||||||
napalm_yealink.egg-info/requires.txt
|
|
||||||
napalm_yealink.egg-info/top_level.txt
|
|
||||||
tests/test_fingerprint.py
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
[napalm.drivers]
|
|
||||||
yealink = napalm_yealink:YealinkDriver
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
napalm
|
|
||||||
napalm-device-types
|
|
||||||
requests
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
napalm_yealink
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -22,7 +22,6 @@ from requests.exceptions import RequestException
|
|||||||
|
|
||||||
from napalm.base.exceptions import ConnectionClosedException, ConnectionException
|
from napalm.base.exceptions import ConnectionClosedException, ConnectionException
|
||||||
from napalm_device_types import FingerprintRule, PhoneDriver
|
from napalm_device_types import FingerprintRule, PhoneDriver
|
||||||
from napalm_device_types.models import HealthMetricsDict
|
|
||||||
|
|
||||||
|
|
||||||
class YealinkDriver(PhoneDriver):
|
class YealinkDriver(PhoneDriver):
|
||||||
@@ -210,18 +209,3 @@ class YealinkDriver(PhoneDriver):
|
|||||||
|
|
||||||
def rollback(self) -> None:
|
def rollback(self) -> None:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
# AccessPointDriver stubs
|
|
||||||
|
|
||||||
def get_wireless_clients(self) -> list:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
def get_ssids(self) -> dict:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
def get_radio_info(self) -> dict:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
async def get_health_metrics(cls, snmp_get, snmp_walk) -> HealthMetricsDict:
|
|
||||||
raise NotImplementedError
|
|
||||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "napalm-yealink"
|
name = "napalm-yealink"
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
description = "NAPALM driver for Yealink IP phones and video endpoints"
|
description = "NAPALM driver for Yealink IP phones and video endpoints"
|
||||||
requires-python = ">=3.10"
|
requires-python = ">=3.10"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|||||||
Binary file not shown.
@@ -0,0 +1,14 @@
|
|||||||
|
"""A method exists on the driver only where the phone can answer it.
|
||||||
|
|
||||||
|
The application asks ``callable(getattr(driver, name, None))``; a stub that only
|
||||||
|
raises would claim a capability the phone does not have.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from napalm_yealink.yealink import YealinkDriver
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("name", ["get_health_metrics", "get_ssids", "get_radio_info", "get_wireless_clients"])
|
||||||
|
def test_no_stub_claims_what_the_phone_cannot_do(name):
|
||||||
|
assert name not in vars(YealinkDriver)
|
||||||
Reference in new issue
Block a user