diff --git a/bec_widgets/widgets/control/scan_control/scan_group_box.py b/bec_widgets/widgets/control/scan_control/scan_group_box.py index f570fe95..09218ac2 100644 --- a/bec_widgets/widgets/control/scan_control/scan_group_box.py +++ b/bec_widgets/widgets/control/scan_control/scan_group_box.py @@ -271,9 +271,16 @@ class ScanGroupBox(QGroupBox): continue if default == "_empty": default = None - widget = widget_class(parent=self.parent(), arg_name=arg_name, default=default) + if widget_class is DeviceComboBox: + widget = widget_class( + parent=self.parent(), + arg_name=arg_name, + default=default, + device_filter=BECDeviceFilter.DEVICE, + ) + else: + widget = widget_class(parent=self.parent(), arg_name=arg_name, default=default) if isinstance(widget, DeviceComboBox): - widget.set_device_filter(BECDeviceFilter.DEVICE) self.selected_devices[widget] = "" widget.device_selected.connect(self.emit_device_selected) if isinstance(widget, ScanLiteralsComboBox): diff --git a/tests/unit_tests/test_device_input_widgets.py b/tests/unit_tests/test_device_input_widgets.py index 5a94fb4e..bb4ff07d 100644 --- a/tests/unit_tests/test_device_input_widgets.py +++ b/tests/unit_tests/test_device_input_widgets.py @@ -37,6 +37,8 @@ def test_device_input_combobox_init(device_input_combobox): assert isinstance(device_input_combobox, DeviceComboBox) assert device_input_combobox.config.widget_class == "DeviceComboBox" assert device_input_combobox.isEditable() is True + assert device_input_combobox.currentText() == "" + assert device_input_combobox.is_valid_input is False assert device_input_combobox.config.device_filter == [] assert device_input_combobox.config.readout_filter == [ ReadoutPriority.MONITORED.value, diff --git a/tests/unit_tests/test_scan_control.py b/tests/unit_tests/test_scan_control.py index eb84d590..cae4811c 100644 --- a/tests/unit_tests/test_scan_control.py +++ b/tests/unit_tests/test_scan_control.py @@ -9,6 +9,7 @@ from qtpy.QtCore import QModelIndex, Qt from bec_widgets.utils.forms_from_types.items import StrFormItem from bec_widgets.utils.widget_io import WidgetIO +from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import DeviceComboBox from bec_widgets.widgets.control.scan_control import ScanControl from .client_mocks import mocked_client @@ -304,6 +305,12 @@ def test_on_scan_selected(scan_control, scan_name): assert widget is not None # Confirm that a widget exists expected_widget_type = scan_control.arg_box.WIDGET_HANDLER.get(arg_value, None) assert isinstance(widget, expected_widget_type) # Confirm the widget type matches + if isinstance(widget, DeviceComboBox): + assert widget.currentText() == "" + assert "samx" in widget.devices + assert ( + "async_device" in widget.devices + ) # async device should also be present in the device list # Check kwargs boxes kwargs_group = [param for param in expected_scan_info["gui_config"]["kwarg_groups"]]