From 93d397759c756397604ebff5e24f3a580be8620d Mon Sep 17 00:00:00 2001 From: Mathias Guijarro Date: Mon, 12 Aug 2024 10:32:35 +0200 Subject: [PATCH] fix: issue #292, wrong key was used to clean _slots internal dictionary --- bec_widgets/utils/bec_dispatcher.py | 6 +++--- tests/unit_tests/test_bec_dispatcher.py | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/bec_widgets/utils/bec_dispatcher.py b/bec_widgets/utils/bec_dispatcher.py index 9a93aa2a..4402ed98 100644 --- a/bec_widgets/utils/bec_dispatcher.py +++ b/bec_widgets/utils/bec_dispatcher.py @@ -162,9 +162,9 @@ class BECDispatcher: return self.client.connector.unregister(topics, cb=connected_slot) topics_str, _ = self.client.connector._convert_endpointinfo(topics) - self._slots[slot].difference_update(set(topics_str)) - if not self._slots[slot]: - del self._slots[slot] + self._slots[connected_slot].difference_update(set(topics_str)) + if not self._slots[connected_slot]: + del self._slots[connected_slot] def disconnect_topics(self, topics: Union[str, list]): self.client.connector.unregister(topics) diff --git a/tests/unit_tests/test_bec_dispatcher.py b/tests/unit_tests/test_bec_dispatcher.py index b24add04..bff12808 100644 --- a/tests/unit_tests/test_bec_dispatcher.py +++ b/tests/unit_tests/test_bec_dispatcher.py @@ -92,7 +92,9 @@ def test_dispatcher_2_cb_same_topic(bec_dispatcher_w_connector, qtbot, send_msg_ bec_dispatcher.connect_slot(cb1, "topic1") bec_dispatcher.connect_slot(cb2, "topic1") assert len(bec_dispatcher.client.connector._topics_cb) == 1 + assert len(bec_dispatcher._slots) == 2 bec_dispatcher.disconnect_slot(cb1, "topic1") + assert len(bec_dispatcher._slots) == 1 send_msg_event.set() qtbot.wait(10)