diff --git a/bec_widgets/cli/client.py b/bec_widgets/cli/client.py index 27b8a378..c05d8d0d 100644 --- a/bec_widgets/cli/client.py +++ b/bec_widgets/cli/client.py @@ -3400,7 +3400,7 @@ class SignalComboBox(RPCBase): @rpc_call def set_device(self, device: str | None): """ - Set the device. If device is not valid, device will be set to None which happpens + Set the device. If device is not valid, device will be set to None which happens Args: device(str): device name. @@ -3442,7 +3442,7 @@ class SignalLineEdit(RPCBase): @rpc_call def set_device(self, device: str | None): """ - Set the device. If device is not valid, device will be set to None which happpens + Set the device. If device is not valid, device will be set to None which happens Args: device(str): device name. diff --git a/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py b/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py index 8b008d39..69a3d9ca 100644 --- a/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +++ b/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py @@ -79,7 +79,7 @@ class DeviceSignalInputBase(BECWidget): @Slot(str) def set_device(self, device: str | None): """ - Set the device. If device is not valid, device will be set to None which happpens + Set the device. If device is not valid, device will be set to None which happens Args: device(str): device name. diff --git a/tests/end-2-end/user_interaction/test_user_interaction_e2e.py b/tests/end-2-end/user_interaction/test_user_interaction_e2e.py index 6073754a..c2a603ef 100644 --- a/tests/end-2-end/user_interaction/test_user_interaction_e2e.py +++ b/tests/end-2-end/user_interaction/test_user_interaction_e2e.py @@ -258,7 +258,10 @@ def test_widgets_e2e_device_combo_box(qtbot, connected_client_gui_obj, random_ge dock: client.BECDock widget: client.DeviceComboBox - # No rpc calls to check so far, maybe set_device should be exposed + assert "samx" in widget.devices + assert "bpm4i" in widget.devices + + widget.set_device("samx") # Test removing the widget, or leaving it open for the next test maybe_remove_dock_area(qtbot, gui=gui, random_int_gen=random_generator_from_seed) @@ -274,10 +277,64 @@ def test_widgets_e2e_device_line_edit(qtbot, connected_client_gui_obj, random_ge dock: client.BECDock widget: client.DeviceLineEdit - # No rpc calls to check so far - # Should probably have a set_device method + assert widget._is_valid_input is False + assert "samx" in widget.devices + assert "bpm4i" in widget.devices - # No rpc calls to check so far, maybe set_device should be exposed + widget.set_device("samx") + assert widget._is_valid_input is True + + # Test removing the widget, or leaving it open for the next test + maybe_remove_dock_area(qtbot, gui=gui, random_int_gen=random_generator_from_seed) + + +@pytest.mark.timeout(PYTEST_TIMEOUT) +def test_widgets_e2e_signal_line_edit(qtbot, connected_client_gui_obj, random_generator_from_seed): + """Test the DeviceSignalLineEdit widget.""" + gui = connected_client_gui_obj + bec = gui._client + # Create dock_area, dock, widget + dock, widget = create_widget(qtbot, gui, gui.available_widgets.SignalLineEdit) + dock: client.BECDock + widget: client.SignalLineEdit + + widget.set_device("samx") + assert widget._is_valid_input is False + assert widget.signals == [ + "readback", + "setpoint", + "motor_is_moving", + "velocity", + "acceleration", + "tolerance", + ] + widget.set_signal("readback") + assert widget._is_valid_input is True + + # Test removing the widget, or leaving it open for the next test + maybe_remove_dock_area(qtbot, gui=gui, random_int_gen=random_generator_from_seed) + + +@pytest.mark.timeout(PYTEST_TIMEOUT) +def test_widgets_e2e_signal_combobox(qtbot, connected_client_gui_obj, random_generator_from_seed): + """Test the DeviceSignalComboBox widget.""" + gui = connected_client_gui_obj + bec = gui._client + # Create dock_area, dock, widget + dock, widget = create_widget(qtbot, gui, gui.available_widgets.SignalComboBox) + dock: client.BECDock + widget: client.SignalComboBox + + widget.set_device("samx") + assert widget.signals == [ + "readback", + "setpoint", + "motor_is_moving", + "velocity", + "acceleration", + "tolerance", + ] + widget.set_signal("readback") # Test removing the widget, or leaving it open for the next test maybe_remove_dock_area(qtbot, gui=gui, random_int_gen=random_generator_from_seed)