Skip to content

Commit 7eeecac

Browse files
committed
COMM_TEST bug fixed
1 parent 57d6166 commit 7eeecac

File tree

4 files changed

+32
-3
lines changed

4 files changed

+32
-3
lines changed

inelsmqtt/discovery.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ def discovery(self) -> dict[str, list[Device]]:
4242
dev_type = d_frags[1]
4343
unique_id = d_frags[2]
4444

45-
command = ProtocolHandlerMapper.get_handler(dev_type).COMM_TEST()
45+
handler = ProtocolHandlerMapper.get_handler(dev_type)
46+
command = getattr(handler, "COMM_TEST", lambda: None)()
4647
if command:
4748
self.__mqtt.publish("inels/set/" + d, command)
4849
_LOGGER.info("Sending comm test to device of type %s, unique_id %s", dev_type, unique_id)

inelsmqtt/utils/core.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ def __update_inels_value(self) -> None:
167167
try:
168168
if self.__ha_value is not DUMMY_VAL:
169169
if self.__ha_value is None:
170-
self.__inels_set_value = self.device_class.COMM_TEST()
170+
self.__inels_set_value = getattr(self.device_class, "COMM_TEST", lambda: "")()
171171
else:
172172
self.__inels_set_value = self.device_class.create_inels_set_value(self)
173173
except Exception as e:

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
setup(
66
name="elkoep-mqtt",
7-
version="0.2.33.beta.3",
7+
version="0.2.33.beta.4",
88
url="https://github.com/epdevlab/elkoep-mqtt",
99
license="MIT",
1010
author="Elko EP s.r.o.",

tests/test_discovery.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,34 @@ def test_discovery_successful(mqtt_mock, discovery):
3434
mqtt_mock.discovery_all.assert_called_once()
3535

3636

37+
def test_discovery_class_com_test(mqtt_mock, discovery):
38+
"""Test discovery of devices when the handler has a COMM_TEST method."""
39+
mqtt_mock.discovery_all.return_value = {
40+
"10e97f8b7d30/01/19E8": None,
41+
"10e97f8b7d30/02/30E8": None,
42+
}
43+
expected_devices = []
44+
45+
discovered_devices = discovery.discovery()
46+
assert len(discovered_devices) == len(expected_devices)
47+
assert mqtt_mock.discovery_all.call_count == 2
48+
49+
50+
def test_discovery_class_without_com_test(mqtt_mock, discovery):
51+
"""Test discovery of devices when the handler does not have a COMM_TEST method."""
52+
mqtt_mock.discovery_all.return_value = {
53+
"2C6A6F1036B3/108/02A89F": None,
54+
"2C6A6F1036B3/101/0294DD": None,
55+
"10e97f8b7d30/17/19E8": None,
56+
"10e97f8b7d30/30/30E8": None,
57+
}
58+
expected_devices = []
59+
60+
discovered_devices = discovery.discovery()
61+
assert len(discovered_devices) == len(expected_devices)
62+
mqtt_mock.discovery_all.assert_called_once()
63+
64+
3765
def test_discovery_with_retry(mqtt_mock, discovery):
3866
"""Test discovery with retry logic when initial discovery fails."""
3967
mqtt_mock.discovery_all.side_effect = [

0 commit comments

Comments
 (0)