mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-13 19:21:50 +02:00
160 lines
5.4 KiB
Python
160 lines
5.4 KiB
Python
# pylint: disable = no-name-in-module,missing-class-docstring, missing-module-docstring
|
|
|
|
from bec_widgets.utils.widget_io import WidgetIO
|
|
from bec_widgets.widgets.control.scan_control.scan_group_box import ScanGroupBox
|
|
|
|
|
|
def test_kwarg_box(qtbot):
|
|
group_input = {
|
|
"name": "Kwarg Test",
|
|
"inputs": [
|
|
# Test float
|
|
{
|
|
"arg": False,
|
|
"name": "exp_time",
|
|
"type": "float",
|
|
"display_name": "Exp Time",
|
|
"tooltip": "Exposure time in seconds",
|
|
"default": 0,
|
|
"expert": False,
|
|
},
|
|
# Test int
|
|
{
|
|
"arg": False,
|
|
"name": "num_points",
|
|
"type": "int",
|
|
"display_name": "Num Points",
|
|
"tooltip": "Number of points",
|
|
"default": 1,
|
|
"expert": False,
|
|
},
|
|
# Test bool
|
|
{
|
|
"arg": False,
|
|
"name": "relative",
|
|
"type": "bool",
|
|
"display_name": "Relative",
|
|
"tooltip": "If True, the motors will be moved relative to their current position",
|
|
"default": False,
|
|
"expert": False,
|
|
},
|
|
# Test str
|
|
{
|
|
"arg": False,
|
|
"name": "scan_type",
|
|
"type": "str",
|
|
"display_name": "Scan Type",
|
|
"tooltip": "Type of scan",
|
|
"default": "line",
|
|
"expert": False,
|
|
},
|
|
],
|
|
}
|
|
|
|
kwarg_box = ScanGroupBox(box_type="kwargs", config=group_input)
|
|
assert kwarg_box is not None
|
|
assert kwarg_box.box_type == "kwargs"
|
|
assert kwarg_box.config == group_input
|
|
assert kwarg_box.title() == "Kwarg Test"
|
|
|
|
# Labels
|
|
assert kwarg_box.layout.itemAtPosition(0, 0).widget().text() == "Exp Time"
|
|
assert kwarg_box.layout.itemAtPosition(0, 1).widget().text() == "Num Points"
|
|
assert kwarg_box.layout.itemAtPosition(0, 2).widget().text() == "Relative"
|
|
assert kwarg_box.layout.itemAtPosition(0, 3).widget().text() == "Scan Type"
|
|
|
|
# Widget 0
|
|
assert kwarg_box.widgets[0].__class__.__name__ == "ScanDoubleSpinBox"
|
|
assert kwarg_box.widgets[0].arg_name == "exp_time"
|
|
assert WidgetIO.get_value(kwarg_box.widgets[0]) == 0
|
|
assert kwarg_box.widgets[0].toolTip() == "Exposure time in seconds"
|
|
|
|
# Widget 1
|
|
assert kwarg_box.widgets[1].__class__.__name__ == "ScanSpinBox"
|
|
assert kwarg_box.widgets[1].arg_name == "num_points"
|
|
assert WidgetIO.get_value(kwarg_box.widgets[1]) == 1
|
|
assert kwarg_box.widgets[1].toolTip() == "Number of points"
|
|
|
|
# Widget 2
|
|
assert kwarg_box.widgets[2].__class__.__name__ == "ScanCheckBox"
|
|
assert kwarg_box.widgets[2].arg_name == "relative"
|
|
assert WidgetIO.get_value(kwarg_box.widgets[2]) == False
|
|
assert (
|
|
kwarg_box.widgets[2].toolTip()
|
|
== "If True, the motors will be moved relative to their current position"
|
|
)
|
|
|
|
# Widget 3
|
|
assert kwarg_box.widgets[3].__class__.__name__ == "ScanLineEdit"
|
|
assert kwarg_box.widgets[3].arg_name == "scan_type"
|
|
assert WidgetIO.get_value(kwarg_box.widgets[3]) == "line"
|
|
assert kwarg_box.widgets[3].toolTip() == "Type of scan"
|
|
|
|
parameters = kwarg_box.get_parameters()
|
|
assert parameters == {"exp_time": 0, "num_points": 1, "relative": False, "scan_type": "line"}
|
|
|
|
|
|
def test_arg_box(qtbot):
|
|
group_input = {
|
|
"name": "Arg Test",
|
|
"inputs": [
|
|
# Test device
|
|
{
|
|
"arg": True,
|
|
"name": "device",
|
|
"type": "str",
|
|
"display_name": "Device",
|
|
"tooltip": "Device to scan",
|
|
"default": "samx",
|
|
"expert": False,
|
|
},
|
|
# Test float
|
|
{
|
|
"arg": True,
|
|
"name": "start",
|
|
"type": "float",
|
|
"display_name": "Start",
|
|
"tooltip": "Start position",
|
|
"default": 0,
|
|
"expert": False,
|
|
},
|
|
# Test int
|
|
{
|
|
"arg": True,
|
|
"name": "stop",
|
|
"type": "int",
|
|
"display_name": "Stop",
|
|
"tooltip": "Stop position",
|
|
"default": 1,
|
|
"expert": False,
|
|
},
|
|
],
|
|
}
|
|
|
|
arg_box = ScanGroupBox(box_type="args", config=group_input)
|
|
assert arg_box is not None
|
|
assert arg_box.box_type == "args"
|
|
assert arg_box.config == group_input
|
|
assert arg_box.title() == "Arg Test"
|
|
|
|
# Labels
|
|
assert arg_box.layout.itemAtPosition(0, 0).widget().text() == "Device"
|
|
assert arg_box.layout.itemAtPosition(0, 1).widget().text() == "Start"
|
|
assert arg_box.layout.itemAtPosition(0, 2).widget().text() == "Stop"
|
|
|
|
# Widget 0
|
|
assert arg_box.widgets[0].__class__.__name__ == "ScanLineEdit"
|
|
assert arg_box.widgets[0].arg_name == "device"
|
|
assert WidgetIO.get_value(arg_box.widgets[0]) == "samx"
|
|
assert arg_box.widgets[0].toolTip() == "Device to scan"
|
|
|
|
# Widget 1
|
|
assert arg_box.widgets[1].__class__.__name__ == "ScanDoubleSpinBox"
|
|
assert arg_box.widgets[1].arg_name == "start"
|
|
assert WidgetIO.get_value(arg_box.widgets[1]) == 0
|
|
assert arg_box.widgets[1].toolTip() == "Start position"
|
|
|
|
# Widget 2
|
|
assert arg_box.widgets[2].__class__.__name__ == "ScanSpinBox"
|
|
assert arg_box.widgets[2].arg_name
|