From 90b0db6c3ba1ad5360dbc7d36989ced5efc6d75f Mon Sep 17 00:00:00 2001 From: "Peter F. Patel-Schneider" Date: Wed, 22 May 2024 21:09:08 -0400 Subject: [PATCH] device: don't ping device when getting name or codename --- lib/logitech_receiver/device.py | 13 +++---------- tests/logitech_receiver/test_device.py | 16 ++++++++-------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/lib/logitech_receiver/device.py b/lib/logitech_receiver/device.py index 7a31bc09..fb261e9a 100644 --- a/lib/logitech_receiver/device.py +++ b/lib/logitech_receiver/device.py @@ -178,8 +178,6 @@ class Device: @property def codename(self): if not self._codename: - if not self.online: # be very defensive - self.ping() if self.online and self.protocol >= 2.0: self._codename = _hidpp20.get_friendly_name(self) if not self._codename: @@ -189,20 +187,15 @@ class Device: if codename: self._codename = codename elif self.protocol < 2.0: - self._codename = "? (%s)" % (self.wpid or hex(self.product_id)[2:].upper()) - return self._codename or "?? (%s)" % (self.wpid or hex(self.product_id)[2:].upper()) + self._codename = "? (%s)" % (self.wpid or self.product_id) + return self._codename or "?? (%s)" % (self.wpid or self.product_id) @property def name(self): if not self._name: - if not self.online: # be very defensive - try: - self.ping() - except exceptions.NoSuchDevice: - pass if self.online and self.protocol >= 2.0: self._name = _hidpp20.get_name(self) - return self._name or self._codename or ("Unknown device %s" % (self.wpid or hex(self.product_id)[2:].upper())) + return self._name or self._codename or "Unknown device %s" % (self.wpid or self.product_id) def get_ids(self): ids = _hidpp20.get_ids(self) diff --git a/tests/logitech_receiver/test_device.py b/tests/logitech_receiver/test_device.py index 2b04e4d3..69d68183 100644 --- a/tests/logitech_receiver/test_device.py +++ b/tests/logitech_receiver/test_device.py @@ -48,14 +48,14 @@ class DeviceInfo: serial: str = "aa:aa:aa;aa" -di_bad_handle = DeviceInfo(None, product_id=0xCCCC) -di_error = DeviceInfo(11, product_id=0xCCCC) -di_CCCC = DeviceInfo("11", product_id=0xCCCC) -di_C318 = DeviceInfo("11", product_id=0xC318) -di_B530 = DeviceInfo("11", product_id=0xB350, bus_id=0x0005) -di_C068 = DeviceInfo("11", product_id=0xC06B) -di_C08A = DeviceInfo("11", product_id=0xC08A) -di_DDDD = DeviceInfo("11", product_id=0xDDDD) +di_bad_handle = DeviceInfo(None, product_id="CCCC") +di_error = DeviceInfo(11, product_id="CCCC") +di_CCCC = DeviceInfo("11", product_id="CCCC") +di_C318 = DeviceInfo("11", product_id="C318") +di_B530 = DeviceInfo("11", product_id="B350", bus_id=0x0005) +di_C068 = DeviceInfo("11", product_id="C06B") +di_C08A = DeviceInfo("11", product_id="C08A") +di_DDDD = DeviceInfo("11", product_id="DDDD") @pytest.mark.parametrize(