0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-14 11:41:49 +02:00

test(input-widgets): add e2e tests to test widget inputs with demo config of bec.

This commit is contained in:
2025-05-16 12:56:46 +02:00
committed by Jan Wyzula
parent a8811c9d91
commit f57950c4e3
3 changed files with 64 additions and 7 deletions

View File

@ -3400,7 +3400,7 @@ class SignalComboBox(RPCBase):
@rpc_call @rpc_call
def set_device(self, device: str | None): 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: Args:
device(str): device name. device(str): device name.
@ -3442,7 +3442,7 @@ class SignalLineEdit(RPCBase):
@rpc_call @rpc_call
def set_device(self, device: str | None): 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: Args:
device(str): device name. device(str): device name.

View File

@ -79,7 +79,7 @@ class DeviceSignalInputBase(BECWidget):
@Slot(str) @Slot(str)
def set_device(self, device: str | None): 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: Args:
device(str): device name. device(str): device name.

View File

@ -258,7 +258,10 @@ def test_widgets_e2e_device_combo_box(qtbot, connected_client_gui_obj, random_ge
dock: client.BECDock dock: client.BECDock
widget: client.DeviceComboBox 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 # 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) 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 dock: client.BECDock
widget: client.DeviceLineEdit widget: client.DeviceLineEdit
# No rpc calls to check so far assert widget._is_valid_input is False
# Should probably have a set_device method 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 # 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) maybe_remove_dock_area(qtbot, gui=gui, random_int_gen=random_generator_from_seed)