fix(device_combobox): include signals with write_access filter; include in scan control

This commit is contained in:
2026-07-01 20:43:23 +02:00
committed by Jan Wyzula
parent 843765a60c
commit c0a1f8e1ff
5 changed files with 96 additions and 4 deletions
@@ -3,6 +3,7 @@ from unittest import mock
import pytest
from bec_lib.device import ReadoutPriority
from bec_widgets.tests.utils import FakeDevice
from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import (
BECDeviceFilter,
DeviceComboBox,
@@ -156,6 +157,48 @@ def test_device_input_combobox_cleanup_clears_callback_before_unregister(qtbot,
remove_mock.assert_called_once_with(callback_id)
def test_device_input_combobox_include_signals_with_write_access(qtbot, mocked_client):
settable_signal = FakeDevice("settable_signal", write_access=True)
mocked_client.device_manager.add_devices([settable_signal])
widget = DeviceComboBox(client=mocked_client, device_filter=BECDeviceFilter.POSITIONER)
qtbot.addWidget(widget)
qtbot.waitExposed(widget)
assert widget.include_signals_with_write_access is False
assert "samx" in widget.devices
assert "settable_signal" not in widget.devices
assert "bpm4i" not in widget.devices
widget.include_signals_with_write_access = True
assert widget.config.include_signals_with_write_access is True
assert "samx" in widget.devices
assert "settable_signal" in widget.devices
assert "bpm4i" not in widget.devices
widget.include_signals_with_write_access = False
assert "settable_signal" not in widget.devices
def test_device_input_combobox_include_signals_with_write_access_via_kwarg(qtbot, mocked_client):
settable_signal = FakeDevice("settable_signal", write_access=True)
mocked_client.device_manager.add_devices([settable_signal])
widget = DeviceComboBox(
client=mocked_client,
device_filter=BECDeviceFilter.POSITIONER,
include_signals_with_write_access=True,
)
qtbot.addWidget(widget)
qtbot.waitExposed(widget)
assert widget.include_signals_with_write_access is True
assert "samx" in widget.devices
assert "settable_signal" in widget.devices
def test_get_device_from_input_combobox_init(device_input_combobox):
device_input_combobox.setCurrentIndex(0)
device_text = device_input_combobox.currentText()