bec-widgets 0.99.8__py3-none-any.whl → 0.99.9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- CHANGELOG.md +6 -6
- PKG-INFO +1 -1
- {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.9.dist-info}/METADATA +1 -1
- {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.9.dist-info}/RECORD +8 -155
- pyproject.toml +6 -1
- docs/Makefile +0 -20
- docs/_static/custom.css +0 -170
- docs/_templates/custom-class-template.rst +0 -34
- docs/_templates/custom-module-template.rst +0 -66
- docs/api_reference/api_reference.md +0 -12
- docs/assets/apps_48dp.svg +0 -1
- docs/assets/display_settings_48dp.svg +0 -1
- docs/assets/index_api.svg +0 -97
- docs/assets/index_contribute.svg +0 -76
- docs/assets/index_getting_started.svg +0 -66
- docs/assets/index_user_guide.svg +0 -67
- docs/assets/rocket_launch_48dp.svg +0 -1
- docs/assets/widget_screenshots/buttons.png +0 -0
- docs/assets/widget_screenshots/device_box.png +0 -0
- docs/assets/widget_screenshots/device_browser.png +0 -0
- docs/assets/widget_screenshots/device_inputs.png +0 -0
- docs/assets/widget_screenshots/dock_area.png +0 -0
- docs/assets/widget_screenshots/figure.png +0 -0
- docs/assets/widget_screenshots/image_widget.png +0 -0
- docs/assets/widget_screenshots/motor_map_widget.png +0 -0
- docs/assets/widget_screenshots/position_indicator.png +0 -0
- docs/assets/widget_screenshots/queue.png +0 -0
- docs/assets/widget_screenshots/ring_progress_bar.png +0 -0
- docs/assets/widget_screenshots/scan_controller.png +0 -0
- docs/assets/widget_screenshots/spinner.gif +0 -0
- docs/assets/widget_screenshots/status_box.png +0 -0
- docs/assets/widget_screenshots/text_box.png +0 -0
- docs/assets/widget_screenshots/toggle.png +0 -0
- docs/assets/widget_screenshots/waveform_widget.png +0 -0
- docs/assets/widget_screenshots/website.png +0 -0
- docs/conf.py +0 -82
- docs/developer/developer.md +0 -52
- docs/developer/introduction/concepts.md +0 -14
- docs/developer/introduction/contributing.md +0 -28
- docs/developer/introduction/introduction.md +0 -16
- docs/developer/introduction/useful_links.md +0 -23
- docs/developer/widget_development/bec_dispatcher.md +0 -143
- docs/developer/widget_development/widget_base_class.md +0 -171
- docs/developer/widget_development/widget_development.md +0 -14
- docs/index.md +0 -74
- docs/introduction/introduction.md +0 -18
- docs/make.bat +0 -35
- docs/requirements.txt +0 -12
- docs/user/api_reference/api_reference.md +0 -11
- docs/user/applications/applications.md +0 -10
- docs/user/customisation.md +0 -123
- docs/user/getting_started/BECDockArea.png +0 -0
- docs/user/getting_started/auto_updates.md +0 -82
- docs/user/getting_started/getting_started.md +0 -15
- docs/user/getting_started/gui_complex_gui.gif +0 -0
- docs/user/getting_started/installation.md +0 -33
- docs/user/getting_started/quick_start.md +0 -110
- docs/user/getting_started/video_tutorials.md +0 -17
- docs/user/user.md +0 -71
- docs/user/widgets/bec_figure/BECFigure.png +0 -0
- docs/user/widgets/bec_figure/bec_figure.md +0 -105
- docs/user/widgets/bec_status_box/bec_status_box.gif +0 -0
- docs/user/widgets/bec_status_box/bec_status_box.md +0 -38
- docs/user/widgets/buttons/buttons.md +0 -90
- docs/user/widgets/buttons/dark_mode_disabled.png +0 -0
- docs/user/widgets/buttons/dark_mode_enabled.png +0 -0
- docs/user/widgets/device_browser/device_browser.md +0 -36
- docs/user/widgets/device_browser/device_browser.png +0 -0
- docs/user/widgets/device_input/device_input.md +0 -100
- docs/user/widgets/dock_area/BECDockArea.png +0 -0
- docs/user/widgets/dock_area/bec_dock_area.md +0 -109
- docs/user/widgets/image/image_plot.gif +0 -0
- docs/user/widgets/image/image_widget.md +0 -84
- docs/user/widgets/motor_map/motor.gif +0 -0
- docs/user/widgets/motor_map/motor_map.md +0 -80
- docs/user/widgets/position_indicator/position_indicator.md +0 -69
- docs/user/widgets/positioner_box/positioner_box.md +0 -63
- docs/user/widgets/progress_bar/progress_bar.gif +0 -0
- docs/user/widgets/progress_bar/ring_progress_bar.md +0 -103
- docs/user/widgets/queue/queue.md +0 -41
- docs/user/widgets/scan_control/hide_scan_control.png +0 -0
- docs/user/widgets/scan_control/scan_control.gif +0 -0
- docs/user/widgets/scan_control/scan_control.md +0 -54
- docs/user/widgets/spinner/spinner.md +0 -68
- docs/user/widgets/text_box/text_box.md +0 -74
- docs/user/widgets/toggle/toggle.md +0 -66
- docs/user/widgets/waveform/bec_figure_dap.gif +0 -0
- docs/user/widgets/waveform/scatter_2D.gif +0 -0
- docs/user/widgets/waveform/w1D.gif +0 -0
- docs/user/widgets/waveform/waveform_widget.md +0 -132
- docs/user/widgets/website/website.md +0 -69
- docs/user/widgets/widgets.md +0 -220
- tests/__init__.py +0 -0
- tests/end-2-end/__init__.py +0 -0
- tests/end-2-end/conftest.py +0 -53
- tests/end-2-end/test_bec_dock_rpc_e2e.py +0 -298
- tests/end-2-end/test_bec_figure_rpc_e2e.py +0 -212
- tests/end-2-end/test_rpc_register_e2e.py +0 -40
- tests/end-2-end/test_scan_control_e2e.py +0 -71
- tests/references/SpinnerWidget/SpinnerWidget_darwin.png +0 -0
- tests/references/SpinnerWidget/SpinnerWidget_linux.png +0 -0
- tests/references/SpinnerWidget/SpinnerWidget_started_darwin.png +0 -0
- tests/references/SpinnerWidget/SpinnerWidget_started_linux.png +0 -0
- tests/unit_tests/__init__.py +0 -0
- tests/unit_tests/client_mocks.py +0 -189
- tests/unit_tests/conftest.py +0 -64
- tests/unit_tests/test_bec_connector.py +0 -80
- tests/unit_tests/test_bec_dispatcher.py +0 -119
- tests/unit_tests/test_bec_dock.py +0 -155
- tests/unit_tests/test_bec_figure.py +0 -270
- tests/unit_tests/test_bec_image.py +0 -63
- tests/unit_tests/test_bec_image_widget.py +0 -217
- tests/unit_tests/test_bec_motor_map.py +0 -282
- tests/unit_tests/test_bec_queue.py +0 -111
- tests/unit_tests/test_bec_status_box.py +0 -123
- tests/unit_tests/test_client_utils.py +0 -76
- tests/unit_tests/test_color_map_selector.py +0 -42
- tests/unit_tests/test_color_validation.py +0 -75
- tests/unit_tests/test_configs/config_device.yaml +0 -33
- tests/unit_tests/test_configs/config_device_no_entry.yaml +0 -27
- tests/unit_tests/test_configs/config_scan.yaml +0 -82
- tests/unit_tests/test_crosshair.py +0 -143
- tests/unit_tests/test_dark_mode_button.py +0 -70
- tests/unit_tests/test_device_browser.py +0 -83
- tests/unit_tests/test_device_input_base.py +0 -76
- tests/unit_tests/test_device_input_widgets.py +0 -178
- tests/unit_tests/test_error_utils.py +0 -63
- tests/unit_tests/test_generate_cli_client.py +0 -123
- tests/unit_tests/test_generate_plugin.py +0 -155
- tests/unit_tests/test_motor_map_widget.py +0 -194
- tests/unit_tests/test_msgs/__init__.py +0 -0
- tests/unit_tests/test_msgs/available_scans_message.py +0 -989
- tests/unit_tests/test_plot_base.py +0 -95
- tests/unit_tests/test_plugin_utils.py +0 -13
- tests/unit_tests/test_positioner_box.py +0 -130
- tests/unit_tests/test_ring_progress_bar.py +0 -337
- tests/unit_tests/test_rpc_register.py +0 -52
- tests/unit_tests/test_rpc_server.py +0 -42
- tests/unit_tests/test_rpc_widget_handler.py +0 -7
- tests/unit_tests/test_scan_control.py +0 -324
- tests/unit_tests/test_scan_control_group_box.py +0 -160
- tests/unit_tests/test_setting_dialog.py +0 -96
- tests/unit_tests/test_spinner.py +0 -31
- tests/unit_tests/test_stop_button.py +0 -27
- tests/unit_tests/test_text_box_widget.py +0 -54
- tests/unit_tests/test_toggle.py +0 -38
- tests/unit_tests/test_vscode_widget.py +0 -75
- tests/unit_tests/test_waveform1d.py +0 -712
- tests/unit_tests/test_waveform_widget.py +0 -462
- tests/unit_tests/test_website_widget.py +0 -25
- tests/unit_tests/test_widget_io.py +0 -90
- tests/unit_tests/test_yaml_dialog.py +0 -163
- {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.9.dist-info}/WHEEL +0 -0
- {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.9.dist-info}/entry_points.txt +0 -0
- {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.9.dist-info}/licenses/LICENSE +0 -0
@@ -1,194 +0,0 @@
|
|
1
|
-
from unittest.mock import MagicMock, patch
|
2
|
-
|
3
|
-
import pytest
|
4
|
-
|
5
|
-
from bec_widgets.widgets.motor_map.motor_map_dialog.motor_map_settings import MotorMapSettings
|
6
|
-
from bec_widgets.widgets.motor_map.motor_map_widget import BECMotorMapWidget
|
7
|
-
|
8
|
-
from .client_mocks import mocked_client
|
9
|
-
|
10
|
-
|
11
|
-
@pytest.fixture
|
12
|
-
def motor_map_widget(qtbot, mocked_client):
|
13
|
-
widget = BECMotorMapWidget(client=mocked_client())
|
14
|
-
widget.toolbar.widgets["motor_x"].device_combobox.set_device_filter("FakePositioner")
|
15
|
-
widget.toolbar.widgets["motor_y"].device_combobox.set_device_filter("FakePositioner")
|
16
|
-
qtbot.addWidget(widget)
|
17
|
-
qtbot.waitExposed(widget)
|
18
|
-
yield widget
|
19
|
-
|
20
|
-
|
21
|
-
@pytest.fixture
|
22
|
-
def mock_motor_map(motor_map_widget):
|
23
|
-
motor_map_mock = MagicMock()
|
24
|
-
motor_map_widget.map = motor_map_mock
|
25
|
-
return motor_map_mock
|
26
|
-
|
27
|
-
|
28
|
-
def test_motor_map_widget_init(motor_map_widget):
|
29
|
-
assert motor_map_widget is not None
|
30
|
-
assert motor_map_widget.client is not None
|
31
|
-
assert isinstance(motor_map_widget, BECMotorMapWidget)
|
32
|
-
assert motor_map_widget.config.widget_class == "BECMotorMapWidget"
|
33
|
-
|
34
|
-
# check initial state of toolbar actions
|
35
|
-
assert motor_map_widget.toolbar.widgets["connect"].action.isEnabled() == True
|
36
|
-
assert motor_map_widget.toolbar.widgets["config"].action.isEnabled() == False
|
37
|
-
assert motor_map_widget.toolbar.widgets["history"].action.isEnabled() == False
|
38
|
-
assert (
|
39
|
-
motor_map_widget.toolbar.widgets["motor_x"].device_combobox.config.device_filter
|
40
|
-
== "FakePositioner"
|
41
|
-
)
|
42
|
-
assert (
|
43
|
-
motor_map_widget.toolbar.widgets["motor_y"].device_combobox.config.device_filter
|
44
|
-
== "FakePositioner"
|
45
|
-
)
|
46
|
-
assert motor_map_widget.map.motor_x is None
|
47
|
-
assert motor_map_widget.map.motor_y is None
|
48
|
-
|
49
|
-
|
50
|
-
###################################
|
51
|
-
# Toolbar Actions
|
52
|
-
###################################
|
53
|
-
|
54
|
-
|
55
|
-
def test_motor_map_widget_change_motors_enable_toolbar(motor_map_widget):
|
56
|
-
motor_map_widget.change_motors("samx", "samy")
|
57
|
-
assert motor_map_widget.map.motor_x == "samx"
|
58
|
-
assert motor_map_widget.map.motor_y == "samy"
|
59
|
-
assert motor_map_widget.toolbar.widgets["motor_x"].device_combobox.currentText() == "samx"
|
60
|
-
assert motor_map_widget.toolbar.widgets["motor_y"].device_combobox.currentText() == "samy"
|
61
|
-
assert motor_map_widget.toolbar.widgets["config"].action.isEnabled() == True
|
62
|
-
assert motor_map_widget.toolbar.widgets["history"].action.isEnabled() == True
|
63
|
-
|
64
|
-
|
65
|
-
###################################
|
66
|
-
# Wrapper methods for MotorMap
|
67
|
-
###################################
|
68
|
-
|
69
|
-
|
70
|
-
def test_change_motors(motor_map_widget, mock_motor_map):
|
71
|
-
motor_map_widget.change_motors("motor_x", "motor_y", "motor_x_entry", "motor_y_entry", True)
|
72
|
-
mock_motor_map.change_motors.assert_called_once_with(
|
73
|
-
"motor_x", "motor_y", "motor_x_entry", "motor_y_entry", True
|
74
|
-
)
|
75
|
-
|
76
|
-
|
77
|
-
def test_get_data(motor_map_widget, mock_motor_map):
|
78
|
-
motor_map_widget.get_data()
|
79
|
-
mock_motor_map.get_data.assert_called_once()
|
80
|
-
|
81
|
-
|
82
|
-
def test_reset_history(motor_map_widget, mock_motor_map):
|
83
|
-
motor_map_widget.reset_history()
|
84
|
-
mock_motor_map.reset_history.assert_called_once()
|
85
|
-
|
86
|
-
|
87
|
-
def test_set_color(motor_map_widget, mock_motor_map):
|
88
|
-
motor_map_widget.set_color("blue")
|
89
|
-
mock_motor_map.set_color.assert_called_once_with("blue")
|
90
|
-
|
91
|
-
|
92
|
-
def test_set_max_points(motor_map_widget, mock_motor_map):
|
93
|
-
motor_map_widget.set_max_points(100)
|
94
|
-
mock_motor_map.set_max_points.assert_called_once_with(100)
|
95
|
-
|
96
|
-
|
97
|
-
def test_set_precision(motor_map_widget, mock_motor_map):
|
98
|
-
motor_map_widget.set_precision(2)
|
99
|
-
mock_motor_map.set_precision.assert_called_once_with(2)
|
100
|
-
|
101
|
-
|
102
|
-
def test_set_num_dim_points(motor_map_widget, mock_motor_map):
|
103
|
-
motor_map_widget.set_num_dim_points(50)
|
104
|
-
mock_motor_map.set_num_dim_points.assert_called_once_with(50)
|
105
|
-
|
106
|
-
|
107
|
-
def test_set_background_value(motor_map_widget, mock_motor_map):
|
108
|
-
motor_map_widget.set_background_value(128)
|
109
|
-
mock_motor_map.set_background_value.assert_called_once_with(128)
|
110
|
-
|
111
|
-
|
112
|
-
def test_set_scatter_size(motor_map_widget, mock_motor_map):
|
113
|
-
motor_map_widget.set_scatter_size(10)
|
114
|
-
mock_motor_map.set_scatter_size.assert_called_once_with(10)
|
115
|
-
|
116
|
-
|
117
|
-
###################################
|
118
|
-
# MotorMap Dialog
|
119
|
-
###################################
|
120
|
-
|
121
|
-
|
122
|
-
def test_motor_map_widget_clicked(motor_map_widget, qtbot):
|
123
|
-
motor_map_widget.toolbar.widgets["motor_x"].device_combobox.setCurrentText("samx")
|
124
|
-
motor_map_widget.toolbar.widgets["motor_y"].device_combobox.setCurrentText("samy")
|
125
|
-
motor_map_widget.toolbar.widgets["connect"].action.trigger()
|
126
|
-
|
127
|
-
qtbot.wait(200)
|
128
|
-
|
129
|
-
assert motor_map_widget.map.motor_x == "samx"
|
130
|
-
assert motor_map_widget.map.motor_y == "samy"
|
131
|
-
assert motor_map_widget.toolbar.widgets["config"].action.isEnabled() == True
|
132
|
-
assert motor_map_widget.toolbar.widgets["history"].action.isEnabled() == True
|
133
|
-
|
134
|
-
|
135
|
-
@pytest.fixture
|
136
|
-
def motor_map_settings(qtbot):
|
137
|
-
widget = MotorMapSettings()
|
138
|
-
qtbot.addWidget(widget)
|
139
|
-
qtbot.waitExposed(widget)
|
140
|
-
yield widget
|
141
|
-
|
142
|
-
|
143
|
-
def test_display_current_settings(motor_map_settings):
|
144
|
-
config = {
|
145
|
-
"max_points": 100,
|
146
|
-
"num_dim_points": 50,
|
147
|
-
"precision": 2,
|
148
|
-
"scatter_size": 10,
|
149
|
-
"background_value": 128,
|
150
|
-
"color": (255, 0, 0, 255),
|
151
|
-
}
|
152
|
-
|
153
|
-
with patch("bec_widgets.utils.widget_io.WidgetIO.set_value") as mock_set_value:
|
154
|
-
with patch.object(motor_map_settings.ui.color, "setColor") as mock_set_color:
|
155
|
-
motor_map_settings.display_current_settings(config)
|
156
|
-
mock_set_value.assert_any_call(motor_map_settings.ui.max_points, config["max_points"])
|
157
|
-
mock_set_value.assert_any_call(
|
158
|
-
motor_map_settings.ui.trace_dim, config["num_dim_points"]
|
159
|
-
)
|
160
|
-
mock_set_value.assert_any_call(motor_map_settings.ui.precision, config["precision"])
|
161
|
-
mock_set_value.assert_any_call(
|
162
|
-
motor_map_settings.ui.scatter_size, config["scatter_size"]
|
163
|
-
)
|
164
|
-
mock_set_value.assert_any_call(
|
165
|
-
motor_map_settings.ui.background_value, 50
|
166
|
-
) # 128/255*100 = 50
|
167
|
-
mock_set_color.assert_called_once_with(config["color"])
|
168
|
-
|
169
|
-
|
170
|
-
def test_accept_changes(motor_map_settings):
|
171
|
-
with patch(
|
172
|
-
"bec_widgets.utils.widget_io.WidgetIO.get_value", side_effect=[100, 50, 2, 10, 50]
|
173
|
-
) as mock_get_value:
|
174
|
-
with patch.object(
|
175
|
-
motor_map_settings.ui.color, "get_color", return_value=(255, 0, 0, 255)
|
176
|
-
) as mock_get_color:
|
177
|
-
mock_target_widget = MagicMock()
|
178
|
-
motor_map_settings.set_target_widget(mock_target_widget)
|
179
|
-
|
180
|
-
motor_map_settings.accept_changes()
|
181
|
-
|
182
|
-
mock_get_value.assert_any_call(motor_map_settings.ui.max_points)
|
183
|
-
mock_get_value.assert_any_call(motor_map_settings.ui.trace_dim)
|
184
|
-
mock_get_value.assert_any_call(motor_map_settings.ui.precision)
|
185
|
-
mock_get_value.assert_any_call(motor_map_settings.ui.scatter_size)
|
186
|
-
mock_get_value.assert_any_call(motor_map_settings.ui.background_value)
|
187
|
-
mock_get_color.assert_called_once()
|
188
|
-
|
189
|
-
mock_target_widget.set_max_points.assert_called_once_with(100)
|
190
|
-
mock_target_widget.set_num_dim_points.assert_called_once_with(50)
|
191
|
-
mock_target_widget.set_precision.assert_called_once_with(2)
|
192
|
-
mock_target_widget.set_scatter_size.assert_called_once_with(10)
|
193
|
-
mock_target_widget.set_background_value.assert_called_once_with(127)
|
194
|
-
mock_target_widget.set_color.assert_called_once_with((255, 0, 0, 255))
|
File without changes
|