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_device_types import FingerprintRule, PhoneDriver
|
||||
from napalm_device_types.models import HealthMetricsDict
|
||||
|
||||
|
||||
class YealinkDriver(PhoneDriver):
|
||||
@@ -210,18 +209,3 @@ class YealinkDriver(PhoneDriver):
|
||||
|
||||
def rollback(self) -> None:
|
||||
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]
|
||||
name = "napalm-yealink"
|
||||
version = "0.1.0"
|
||||
version = "0.1.1"
|
||||
description = "NAPALM driver for Yealink IP phones and video endpoints"
|
||||
requires-python = ">=3.10"
|
||||
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