mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-13 19:21:50 +02:00
fix(DeviceSignalInput): improve robustness
use set for storing filter properties to allow multiple set to true or false
This commit is contained in:
@ -49,7 +49,7 @@ class DeviceSignalInputBase(BECWidget):
|
|||||||
|
|
||||||
self._device = None
|
self._device = None
|
||||||
self.get_bec_shortcuts()
|
self.get_bec_shortcuts()
|
||||||
self._signal_filter = []
|
self._signal_filter = set()
|
||||||
self._signals = []
|
self._signals = []
|
||||||
self._hinted_signals = []
|
self._hinted_signals = []
|
||||||
self._normal_signals = []
|
self._normal_signals = []
|
||||||
@ -158,9 +158,9 @@ class DeviceSignalInputBase(BECWidget):
|
|||||||
@include_hinted_signals.setter
|
@include_hinted_signals.setter
|
||||||
def include_hinted_signals(self, value: bool):
|
def include_hinted_signals(self, value: bool):
|
||||||
if value:
|
if value:
|
||||||
self._signal_filter.append(Kind.hinted)
|
self._signal_filter.add(Kind.hinted)
|
||||||
else:
|
else:
|
||||||
self._signal_filter.remove(Kind.hinted)
|
self._signal_filter.discard(Kind.hinted)
|
||||||
self.update_signals_from_filters()
|
self.update_signals_from_filters()
|
||||||
|
|
||||||
@Property(bool)
|
@Property(bool)
|
||||||
@ -171,9 +171,9 @@ class DeviceSignalInputBase(BECWidget):
|
|||||||
@include_normal_signals.setter
|
@include_normal_signals.setter
|
||||||
def include_normal_signals(self, value: bool):
|
def include_normal_signals(self, value: bool):
|
||||||
if value:
|
if value:
|
||||||
self._signal_filter.append(Kind.normal)
|
self._signal_filter.add(Kind.normal)
|
||||||
else:
|
else:
|
||||||
self._signal_filter.remove(Kind.normal)
|
self._signal_filter.discard(Kind.normal)
|
||||||
self.update_signals_from_filters()
|
self.update_signals_from_filters()
|
||||||
|
|
||||||
@Property(bool)
|
@Property(bool)
|
||||||
@ -184,9 +184,9 @@ class DeviceSignalInputBase(BECWidget):
|
|||||||
@include_config_signals.setter
|
@include_config_signals.setter
|
||||||
def include_config_signals(self, value: bool):
|
def include_config_signals(self, value: bool):
|
||||||
if value:
|
if value:
|
||||||
self._signal_filter.append(Kind.config)
|
self._signal_filter.add(Kind.config)
|
||||||
else:
|
else:
|
||||||
self._signal_filter.remove(Kind.config)
|
self._signal_filter.discard(Kind.config)
|
||||||
self.update_signals_from_filters()
|
self.update_signals_from_filters()
|
||||||
|
|
||||||
### Properties and Methods ###
|
### Properties and Methods ###
|
||||||
|
@ -67,7 +67,7 @@ def test_device_signal_combo(qtbot, mocked_client):
|
|||||||
def test_device_signal_base_init(device_signal_base):
|
def test_device_signal_base_init(device_signal_base):
|
||||||
"""Test if the DeviceSignalInputBase is initialized correctly"""
|
"""Test if the DeviceSignalInputBase is initialized correctly"""
|
||||||
assert device_signal_base._device is None
|
assert device_signal_base._device is None
|
||||||
assert device_signal_base._signal_filter == []
|
assert device_signal_base._signal_filter == set()
|
||||||
assert device_signal_base._signals == []
|
assert device_signal_base._signals == []
|
||||||
assert device_signal_base._hinted_signals == []
|
assert device_signal_base._hinted_signals == []
|
||||||
assert device_signal_base._normal_signals == []
|
assert device_signal_base._normal_signals == []
|
||||||
@ -77,11 +77,17 @@ def test_device_signal_base_init(device_signal_base):
|
|||||||
def test_device_signal_qproperties(device_signal_base):
|
def test_device_signal_qproperties(device_signal_base):
|
||||||
"""Test if the DeviceSignalInputBase has the correct QProperties"""
|
"""Test if the DeviceSignalInputBase has the correct QProperties"""
|
||||||
device_signal_base.include_config_signals = True
|
device_signal_base.include_config_signals = True
|
||||||
assert device_signal_base._signal_filter == [Kind.config]
|
assert device_signal_base._signal_filter == {Kind.config}
|
||||||
device_signal_base.include_normal_signals = True
|
device_signal_base.include_normal_signals = True
|
||||||
assert device_signal_base._signal_filter == [Kind.config, Kind.normal]
|
assert device_signal_base._signal_filter == {Kind.config, Kind.normal}
|
||||||
device_signal_base.include_hinted_signals = True
|
device_signal_base.include_hinted_signals = True
|
||||||
assert device_signal_base._signal_filter == [Kind.config, Kind.normal, Kind.hinted]
|
assert device_signal_base._signal_filter == {Kind.config, Kind.normal, Kind.hinted}
|
||||||
|
device_signal_base.include_hinted_signals = True
|
||||||
|
assert device_signal_base._signal_filter == {Kind.config, Kind.normal, Kind.hinted}
|
||||||
|
device_signal_base.include_hinted_signals = True
|
||||||
|
assert device_signal_base._signal_filter == {Kind.config, Kind.normal, Kind.hinted}
|
||||||
|
device_signal_base.include_hinted_signals = False
|
||||||
|
assert device_signal_base._signal_filter == {Kind.config, Kind.normal}
|
||||||
|
|
||||||
|
|
||||||
def test_device_signal_set_device(device_signal_base):
|
def test_device_signal_set_device(device_signal_base):
|
||||||
|
Reference in New Issue
Block a user