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.
Files changed (155) hide show
  1. CHANGELOG.md +6 -6
  2. PKG-INFO +1 -1
  3. {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.9.dist-info}/METADATA +1 -1
  4. {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.9.dist-info}/RECORD +8 -155
  5. pyproject.toml +6 -1
  6. docs/Makefile +0 -20
  7. docs/_static/custom.css +0 -170
  8. docs/_templates/custom-class-template.rst +0 -34
  9. docs/_templates/custom-module-template.rst +0 -66
  10. docs/api_reference/api_reference.md +0 -12
  11. docs/assets/apps_48dp.svg +0 -1
  12. docs/assets/display_settings_48dp.svg +0 -1
  13. docs/assets/index_api.svg +0 -97
  14. docs/assets/index_contribute.svg +0 -76
  15. docs/assets/index_getting_started.svg +0 -66
  16. docs/assets/index_user_guide.svg +0 -67
  17. docs/assets/rocket_launch_48dp.svg +0 -1
  18. docs/assets/widget_screenshots/buttons.png +0 -0
  19. docs/assets/widget_screenshots/device_box.png +0 -0
  20. docs/assets/widget_screenshots/device_browser.png +0 -0
  21. docs/assets/widget_screenshots/device_inputs.png +0 -0
  22. docs/assets/widget_screenshots/dock_area.png +0 -0
  23. docs/assets/widget_screenshots/figure.png +0 -0
  24. docs/assets/widget_screenshots/image_widget.png +0 -0
  25. docs/assets/widget_screenshots/motor_map_widget.png +0 -0
  26. docs/assets/widget_screenshots/position_indicator.png +0 -0
  27. docs/assets/widget_screenshots/queue.png +0 -0
  28. docs/assets/widget_screenshots/ring_progress_bar.png +0 -0
  29. docs/assets/widget_screenshots/scan_controller.png +0 -0
  30. docs/assets/widget_screenshots/spinner.gif +0 -0
  31. docs/assets/widget_screenshots/status_box.png +0 -0
  32. docs/assets/widget_screenshots/text_box.png +0 -0
  33. docs/assets/widget_screenshots/toggle.png +0 -0
  34. docs/assets/widget_screenshots/waveform_widget.png +0 -0
  35. docs/assets/widget_screenshots/website.png +0 -0
  36. docs/conf.py +0 -82
  37. docs/developer/developer.md +0 -52
  38. docs/developer/introduction/concepts.md +0 -14
  39. docs/developer/introduction/contributing.md +0 -28
  40. docs/developer/introduction/introduction.md +0 -16
  41. docs/developer/introduction/useful_links.md +0 -23
  42. docs/developer/widget_development/bec_dispatcher.md +0 -143
  43. docs/developer/widget_development/widget_base_class.md +0 -171
  44. docs/developer/widget_development/widget_development.md +0 -14
  45. docs/index.md +0 -74
  46. docs/introduction/introduction.md +0 -18
  47. docs/make.bat +0 -35
  48. docs/requirements.txt +0 -12
  49. docs/user/api_reference/api_reference.md +0 -11
  50. docs/user/applications/applications.md +0 -10
  51. docs/user/customisation.md +0 -123
  52. docs/user/getting_started/BECDockArea.png +0 -0
  53. docs/user/getting_started/auto_updates.md +0 -82
  54. docs/user/getting_started/getting_started.md +0 -15
  55. docs/user/getting_started/gui_complex_gui.gif +0 -0
  56. docs/user/getting_started/installation.md +0 -33
  57. docs/user/getting_started/quick_start.md +0 -110
  58. docs/user/getting_started/video_tutorials.md +0 -17
  59. docs/user/user.md +0 -71
  60. docs/user/widgets/bec_figure/BECFigure.png +0 -0
  61. docs/user/widgets/bec_figure/bec_figure.md +0 -105
  62. docs/user/widgets/bec_status_box/bec_status_box.gif +0 -0
  63. docs/user/widgets/bec_status_box/bec_status_box.md +0 -38
  64. docs/user/widgets/buttons/buttons.md +0 -90
  65. docs/user/widgets/buttons/dark_mode_disabled.png +0 -0
  66. docs/user/widgets/buttons/dark_mode_enabled.png +0 -0
  67. docs/user/widgets/device_browser/device_browser.md +0 -36
  68. docs/user/widgets/device_browser/device_browser.png +0 -0
  69. docs/user/widgets/device_input/device_input.md +0 -100
  70. docs/user/widgets/dock_area/BECDockArea.png +0 -0
  71. docs/user/widgets/dock_area/bec_dock_area.md +0 -109
  72. docs/user/widgets/image/image_plot.gif +0 -0
  73. docs/user/widgets/image/image_widget.md +0 -84
  74. docs/user/widgets/motor_map/motor.gif +0 -0
  75. docs/user/widgets/motor_map/motor_map.md +0 -80
  76. docs/user/widgets/position_indicator/position_indicator.md +0 -69
  77. docs/user/widgets/positioner_box/positioner_box.md +0 -63
  78. docs/user/widgets/progress_bar/progress_bar.gif +0 -0
  79. docs/user/widgets/progress_bar/ring_progress_bar.md +0 -103
  80. docs/user/widgets/queue/queue.md +0 -41
  81. docs/user/widgets/scan_control/hide_scan_control.png +0 -0
  82. docs/user/widgets/scan_control/scan_control.gif +0 -0
  83. docs/user/widgets/scan_control/scan_control.md +0 -54
  84. docs/user/widgets/spinner/spinner.md +0 -68
  85. docs/user/widgets/text_box/text_box.md +0 -74
  86. docs/user/widgets/toggle/toggle.md +0 -66
  87. docs/user/widgets/waveform/bec_figure_dap.gif +0 -0
  88. docs/user/widgets/waveform/scatter_2D.gif +0 -0
  89. docs/user/widgets/waveform/w1D.gif +0 -0
  90. docs/user/widgets/waveform/waveform_widget.md +0 -132
  91. docs/user/widgets/website/website.md +0 -69
  92. docs/user/widgets/widgets.md +0 -220
  93. tests/__init__.py +0 -0
  94. tests/end-2-end/__init__.py +0 -0
  95. tests/end-2-end/conftest.py +0 -53
  96. tests/end-2-end/test_bec_dock_rpc_e2e.py +0 -298
  97. tests/end-2-end/test_bec_figure_rpc_e2e.py +0 -212
  98. tests/end-2-end/test_rpc_register_e2e.py +0 -40
  99. tests/end-2-end/test_scan_control_e2e.py +0 -71
  100. tests/references/SpinnerWidget/SpinnerWidget_darwin.png +0 -0
  101. tests/references/SpinnerWidget/SpinnerWidget_linux.png +0 -0
  102. tests/references/SpinnerWidget/SpinnerWidget_started_darwin.png +0 -0
  103. tests/references/SpinnerWidget/SpinnerWidget_started_linux.png +0 -0
  104. tests/unit_tests/__init__.py +0 -0
  105. tests/unit_tests/client_mocks.py +0 -189
  106. tests/unit_tests/conftest.py +0 -64
  107. tests/unit_tests/test_bec_connector.py +0 -80
  108. tests/unit_tests/test_bec_dispatcher.py +0 -119
  109. tests/unit_tests/test_bec_dock.py +0 -155
  110. tests/unit_tests/test_bec_figure.py +0 -270
  111. tests/unit_tests/test_bec_image.py +0 -63
  112. tests/unit_tests/test_bec_image_widget.py +0 -217
  113. tests/unit_tests/test_bec_motor_map.py +0 -282
  114. tests/unit_tests/test_bec_queue.py +0 -111
  115. tests/unit_tests/test_bec_status_box.py +0 -123
  116. tests/unit_tests/test_client_utils.py +0 -76
  117. tests/unit_tests/test_color_map_selector.py +0 -42
  118. tests/unit_tests/test_color_validation.py +0 -75
  119. tests/unit_tests/test_configs/config_device.yaml +0 -33
  120. tests/unit_tests/test_configs/config_device_no_entry.yaml +0 -27
  121. tests/unit_tests/test_configs/config_scan.yaml +0 -82
  122. tests/unit_tests/test_crosshair.py +0 -143
  123. tests/unit_tests/test_dark_mode_button.py +0 -70
  124. tests/unit_tests/test_device_browser.py +0 -83
  125. tests/unit_tests/test_device_input_base.py +0 -76
  126. tests/unit_tests/test_device_input_widgets.py +0 -178
  127. tests/unit_tests/test_error_utils.py +0 -63
  128. tests/unit_tests/test_generate_cli_client.py +0 -123
  129. tests/unit_tests/test_generate_plugin.py +0 -155
  130. tests/unit_tests/test_motor_map_widget.py +0 -194
  131. tests/unit_tests/test_msgs/__init__.py +0 -0
  132. tests/unit_tests/test_msgs/available_scans_message.py +0 -989
  133. tests/unit_tests/test_plot_base.py +0 -95
  134. tests/unit_tests/test_plugin_utils.py +0 -13
  135. tests/unit_tests/test_positioner_box.py +0 -130
  136. tests/unit_tests/test_ring_progress_bar.py +0 -337
  137. tests/unit_tests/test_rpc_register.py +0 -52
  138. tests/unit_tests/test_rpc_server.py +0 -42
  139. tests/unit_tests/test_rpc_widget_handler.py +0 -7
  140. tests/unit_tests/test_scan_control.py +0 -324
  141. tests/unit_tests/test_scan_control_group_box.py +0 -160
  142. tests/unit_tests/test_setting_dialog.py +0 -96
  143. tests/unit_tests/test_spinner.py +0 -31
  144. tests/unit_tests/test_stop_button.py +0 -27
  145. tests/unit_tests/test_text_box_widget.py +0 -54
  146. tests/unit_tests/test_toggle.py +0 -38
  147. tests/unit_tests/test_vscode_widget.py +0 -75
  148. tests/unit_tests/test_waveform1d.py +0 -712
  149. tests/unit_tests/test_waveform_widget.py +0 -462
  150. tests/unit_tests/test_website_widget.py +0 -25
  151. tests/unit_tests/test_widget_io.py +0 -90
  152. tests/unit_tests/test_yaml_dialog.py +0 -163
  153. {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.9.dist-info}/WHEEL +0 -0
  154. {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.9.dist-info}/entry_points.txt +0 -0
  155. {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