bec-widgets 0.90.0__py3-none-any.whl → 0.92.0__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 +34 -34
- PKG-INFO +1 -1
- bec_widgets/assets/app_icons/BEC-Dark.png +0 -0
- bec_widgets/assets/designer_icons/code.png +0 -0
- bec_widgets/assets/designer_icons/color_button.png +0 -0
- bec_widgets/assets/designer_icons/device_box.png +0 -0
- bec_widgets/assets/designer_icons/device_combo_box.png +0 -0
- bec_widgets/assets/designer_icons/device_line_edit.png +0 -0
- bec_widgets/assets/designer_icons/dock_area.png +0 -0
- bec_widgets/assets/designer_icons/games.png +0 -0
- bec_widgets/assets/designer_icons/position_indicator.png +0 -0
- bec_widgets/assets/designer_icons/queue.png +0 -0
- bec_widgets/assets/designer_icons/ring_progress.png +0 -0
- bec_widgets/assets/designer_icons/scan_control.png +0 -0
- bec_widgets/assets/designer_icons/spinner.png +0 -0
- bec_widgets/assets/designer_icons/status.png +0 -0
- bec_widgets/assets/designer_icons/stop.png +0 -0
- bec_widgets/assets/designer_icons/text.png +0 -0
- bec_widgets/assets/designer_icons/toggle.png +0 -0
- bec_widgets/assets/designer_icons/web.png +0 -0
- bec_widgets/assets/status_icons/error.svg +3 -0
- bec_widgets/assets/status_icons/not_connected.svg +3 -0
- bec_widgets/assets/status_icons/refresh.svg +3 -0
- bec_widgets/assets/status_icons/running.svg +3 -0
- bec_widgets/assets/status_icons/warning.svg +3 -0
- bec_widgets/assets/toolbar_icons/attach_all.svg +3 -0
- bec_widgets/assets/toolbar_icons/device_box.svg +3 -0
- bec_widgets/assets/toolbar_icons/image.svg +3 -0
- bec_widgets/assets/toolbar_icons/motor_map.svg +3 -0
- bec_widgets/assets/toolbar_icons/progress.svg +3 -0
- bec_widgets/assets/toolbar_icons/queue.svg +3 -0
- bec_widgets/assets/toolbar_icons/restore_state.svg +3 -0
- bec_widgets/assets/toolbar_icons/ring_progress.svg +3 -0
- bec_widgets/assets/toolbar_icons/save_state.svg +3 -0
- bec_widgets/assets/toolbar_icons/scan_control.svg +3 -0
- bec_widgets/assets/toolbar_icons/status.svg +3 -0
- bec_widgets/assets/toolbar_icons/terminal.svg +3 -0
- bec_widgets/assets/toolbar_icons/waveform.svg +3 -0
- bec_widgets/cli/client.py +1 -1
- bec_widgets/examples/general_app/__init__.py +0 -0
- bec_widgets/examples/general_app/general_app.py +92 -0
- bec_widgets/examples/general_app/general_app.ui +262 -0
- bec_widgets/examples/general_app/web_links.py +15 -0
- bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +8 -2
- bec_widgets/qt_utils/toolbar.py +52 -2
- bec_widgets/utils/generate_designer_plugin.py +1 -1
- bec_widgets/widgets/bec_queue/bec_queue_plugin.py +7 -2
- bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +7 -2
- bec_widgets/widgets/bec_status_box/status_item.py +14 -8
- bec_widgets/widgets/color_button/color_button_plugin.py +3 -2
- bec_widgets/widgets/device_box/device_box_plugin.py +6 -1
- bec_widgets/widgets/device_combobox/{device_combobox_plugin.py → device_combo_box_plugin.py} +5 -3
- bec_widgets/widgets/device_combobox/device_combobox.py +1 -2
- bec_widgets/widgets/device_combobox/{register_device_combobox.py → register_device_combo_box.py} +1 -1
- bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +5 -3
- bec_widgets/widgets/dock/dock.py +68 -4
- bec_widgets/widgets/dock/dock_area.py +139 -29
- bec_widgets/widgets/dock/dock_area.pyproject +1 -0
- bec_widgets/widgets/dock/dock_area_plugin.py +59 -0
- bec_widgets/widgets/dock/register_dock_area.py +15 -0
- bec_widgets/widgets/position_indicator/__init__.py +0 -0
- bec_widgets/widgets/position_indicator/position_indicator_plugin.py +7 -2
- bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +15 -0
- bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject +1 -0
- bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +58 -0
- bec_widgets/widgets/scan_control/register_scan_control.py +15 -0
- bec_widgets/widgets/scan_control/scan_control.pyproject +1 -0
- bec_widgets/widgets/scan_control/scan_control_plugin.py +58 -0
- bec_widgets/widgets/spinner/spinner_widget_plugin.py +7 -2
- bec_widgets/widgets/stop_button/stop_button_plugin.py +5 -3
- bec_widgets/widgets/text_box/register_text_box.py +15 -0
- bec_widgets/widgets/text_box/text_box.pyproject +1 -0
- bec_widgets/widgets/text_box/text_box_plugin.py +58 -0
- bec_widgets/widgets/toggle/toggle_switch_plugin.py +7 -2
- bec_widgets/widgets/vscode/register_vs_code_editor.py +15 -0
- bec_widgets/widgets/vscode/vs_code_editor.pyproject +1 -0
- bec_widgets/widgets/vscode/vs_code_editor_plugin.py +59 -0
- bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +1 -1
- bec_widgets/widgets/website/register_website_widget.py +15 -0
- bec_widgets/widgets/website/website_widget.pyproject +1 -0
- bec_widgets/widgets/website/website_widget_plugin.py +58 -0
- {bec_widgets-0.90.0.dist-info → bec_widgets-0.92.0.dist-info}/METADATA +1 -1
- {bec_widgets-0.90.0.dist-info → bec_widgets-0.92.0.dist-info}/RECORD +90 -35
- pyproject.toml +1 -1
- tests/unit_tests/test_bec_dock.py +70 -30
- bec_widgets/widgets/color_button/assets/color_button.png +0 -0
- bec_widgets/widgets/device_combobox/assets/device_combobox_icon.png +0 -0
- bec_widgets/widgets/device_line_edit/assets/line_edit_icon.png +0 -0
- bec_widgets/widgets/stop_button/assets/stop.png +0 -0
- /bec_widgets/assets/designer_icons/{BECWaveformWidget.png → waveform.png} +0 -0
- /bec_widgets/widgets/device_combobox/{device_combobox.pyproject → device_combo_box.pyproject} +0 -0
- {bec_widgets-0.90.0.dist-info → bec_widgets-0.92.0.dist-info}/WHEEL +0 -0
- {bec_widgets-0.90.0.dist-info → bec_widgets-0.92.0.dist-info}/entry_points.txt +0 -0
- {bec_widgets-0.90.0.dist-info → bec_widgets-0.92.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,5 @@
|
|
1
1
|
# pylint: disable=missing-function-docstring, missing-module-docstring, unused-import
|
2
|
+
from unittest.mock import MagicMock, patch
|
2
3
|
|
3
4
|
import pytest
|
4
5
|
|
@@ -24,7 +25,7 @@ def test_bec_dock_area_init(bec_dock_area):
|
|
24
25
|
|
25
26
|
|
26
27
|
def test_bec_dock_area_add_remove_dock(bec_dock_area, qtbot):
|
27
|
-
initial_count = len(bec_dock_area.docks)
|
28
|
+
initial_count = len(bec_dock_area.dock_area.docks)
|
28
29
|
|
29
30
|
# Adding 3 docks
|
30
31
|
d0 = bec_dock_area.add_dock()
|
@@ -32,28 +33,28 @@ def test_bec_dock_area_add_remove_dock(bec_dock_area, qtbot):
|
|
32
33
|
d2 = bec_dock_area.add_dock()
|
33
34
|
|
34
35
|
# Check if the docks were added
|
35
|
-
assert len(bec_dock_area.docks) == initial_count + 3
|
36
|
-
assert d0.name() in dict(bec_dock_area.docks)
|
37
|
-
assert d1.name() in dict(bec_dock_area.docks)
|
38
|
-
assert d2.name() in dict(bec_dock_area.docks)
|
39
|
-
assert bec_dock_area.docks[d0.name()].config.widget_class == "BECDock"
|
40
|
-
assert bec_dock_area.docks[d1.name()].config.widget_class == "BECDock"
|
41
|
-
assert bec_dock_area.docks[d2.name()].config.widget_class == "BECDock"
|
36
|
+
assert len(bec_dock_area.dock_area.docks) == initial_count + 3
|
37
|
+
assert d0.name() in dict(bec_dock_area.dock_area.docks)
|
38
|
+
assert d1.name() in dict(bec_dock_area.dock_area.docks)
|
39
|
+
assert d2.name() in dict(bec_dock_area.dock_area.docks)
|
40
|
+
assert bec_dock_area.dock_area.docks[d0.name()].config.widget_class == "BECDock"
|
41
|
+
assert bec_dock_area.dock_area.docks[d1.name()].config.widget_class == "BECDock"
|
42
|
+
assert bec_dock_area.dock_area.docks[d2.name()].config.widget_class == "BECDock"
|
42
43
|
|
43
44
|
# Check panels API for getting docks to CLI
|
44
|
-
assert bec_dock_area.panels == dict(bec_dock_area.docks)
|
45
|
+
assert bec_dock_area.panels == dict(bec_dock_area.dock_area.docks)
|
45
46
|
|
46
47
|
# Remove docks
|
47
48
|
d0_name = d0.name()
|
48
|
-
bec_dock_area.remove_dock(d0_name)
|
49
|
+
bec_dock_area.remove_dock(d0_name)
|
49
50
|
qtbot.wait(200)
|
50
51
|
d1.remove()
|
51
52
|
qtbot.wait(200)
|
52
53
|
|
53
|
-
assert len(bec_dock_area.docks) == initial_count + 1
|
54
|
-
assert d0.name() not in dict(bec_dock_area.docks)
|
55
|
-
assert d1.name() not in dict(bec_dock_area.docks)
|
56
|
-
assert d2.name() in dict(bec_dock_area.docks)
|
54
|
+
assert len(bec_dock_area.dock_area.docks) == initial_count + 1
|
55
|
+
assert d0.name() not in dict(bec_dock_area.dock_area.docks)
|
56
|
+
assert d1.name() not in dict(bec_dock_area.dock_area.docks)
|
57
|
+
assert d2.name() in dict(bec_dock_area.dock_area.docks)
|
57
58
|
|
58
59
|
|
59
60
|
def test_add_remove_bec_figure_to_dock(bec_dock_area):
|
@@ -63,7 +64,7 @@ def test_add_remove_bec_figure_to_dock(bec_dock_area):
|
|
63
64
|
im = fig.image("eiger")
|
64
65
|
mm = fig.motor_map("samx", "samy")
|
65
66
|
|
66
|
-
assert len(bec_dock_area.docks) == 1
|
67
|
+
assert len(bec_dock_area.dock_area.docks) == 1
|
67
68
|
assert len(d0.widgets) == 1
|
68
69
|
assert len(d0.widget_list) == 1
|
69
70
|
assert len(fig.widgets) == 3
|
@@ -74,14 +75,6 @@ def test_add_remove_bec_figure_to_dock(bec_dock_area):
|
|
74
75
|
assert mm.config.widget_class == "BECMotorMap"
|
75
76
|
|
76
77
|
|
77
|
-
def test_dock_area_errors(bec_dock_area):
|
78
|
-
d0 = bec_dock_area.add_dock(name="dock_0")
|
79
|
-
|
80
|
-
with pytest.raises(ValueError) as excinfo:
|
81
|
-
bec_dock_area.add_dock(name="dock_0")
|
82
|
-
assert "Dock with name dock_0 already exists." in str(excinfo.value)
|
83
|
-
|
84
|
-
|
85
78
|
def test_close_docks(bec_dock_area, qtbot):
|
86
79
|
d0 = bec_dock_area.add_dock(name="dock_0")
|
87
80
|
d1 = bec_dock_area.add_dock(name="dock_1")
|
@@ -89,7 +82,7 @@ def test_close_docks(bec_dock_area, qtbot):
|
|
89
82
|
|
90
83
|
bec_dock_area.clear_all()
|
91
84
|
qtbot.wait(200)
|
92
|
-
assert len(bec_dock_area.docks) == 0
|
85
|
+
assert len(bec_dock_area.dock_area.docks) == 0
|
93
86
|
|
94
87
|
|
95
88
|
def test_undock_and_dock_docks(bec_dock_area, qtbot):
|
@@ -102,13 +95,60 @@ def test_undock_and_dock_docks(bec_dock_area, qtbot):
|
|
102
95
|
bec_dock_area.detach_dock("dock_1")
|
103
96
|
d2.detach()
|
104
97
|
|
105
|
-
assert len(bec_dock_area.docks) == 4
|
106
|
-
assert len(bec_dock_area.tempAreas) == 3
|
98
|
+
assert len(bec_dock_area.dock_area.docks) == 4
|
99
|
+
assert len(bec_dock_area.dock_area.tempAreas) == 3
|
107
100
|
|
108
101
|
d0.attach()
|
109
|
-
assert len(bec_dock_area.docks) == 4
|
110
|
-
assert len(bec_dock_area.tempAreas) == 2
|
102
|
+
assert len(bec_dock_area.dock_area.docks) == 4
|
103
|
+
assert len(bec_dock_area.dock_area.tempAreas) == 2
|
111
104
|
|
112
105
|
bec_dock_area.attach_all()
|
113
|
-
assert len(bec_dock_area.docks) == 4
|
114
|
-
assert len(bec_dock_area.tempAreas) == 0
|
106
|
+
assert len(bec_dock_area.dock_area.docks) == 4
|
107
|
+
assert len(bec_dock_area.dock_area.tempAreas) == 0
|
108
|
+
|
109
|
+
|
110
|
+
###################################
|
111
|
+
# Toolbar Actions
|
112
|
+
###################################
|
113
|
+
def test_toolbar_add_plot_waveform(bec_dock_area):
|
114
|
+
bec_dock_area.toolbar.widgets["menu_plots"].widgets["waveform"].trigger()
|
115
|
+
assert "waveform_1" in bec_dock_area.panels
|
116
|
+
assert bec_dock_area.panels["waveform_1"].widgets[0].config.widget_class == "BECWaveformWidget"
|
117
|
+
|
118
|
+
|
119
|
+
def test_toolbar_add_plot_image(bec_dock_area):
|
120
|
+
bec_dock_area.toolbar.widgets["menu_plots"].widgets["image"].trigger()
|
121
|
+
assert "image_1" in bec_dock_area.panels
|
122
|
+
assert bec_dock_area.panels["image_1"].widgets[0].config.widget_class == "BECImageWidget"
|
123
|
+
|
124
|
+
|
125
|
+
def test_toolbar_add_plot_motor_map(bec_dock_area):
|
126
|
+
bec_dock_area.toolbar.widgets["menu_plots"].widgets["motor_map"].trigger()
|
127
|
+
assert "motor_map_1" in bec_dock_area.panels
|
128
|
+
assert bec_dock_area.panels["motor_map_1"].widgets[0].config.widget_class == "BECMotorMapWidget"
|
129
|
+
|
130
|
+
|
131
|
+
def test_toolbar_add_device_device_box(bec_dock_area):
|
132
|
+
bec_dock_area.toolbar.widgets["menu_devices"].widgets["device_box"].trigger()
|
133
|
+
assert "device_box_1" in bec_dock_area.panels
|
134
|
+
assert bec_dock_area.panels["device_box_1"].widgets[0].config.widget_class == "DeviceBox"
|
135
|
+
|
136
|
+
|
137
|
+
def test_toolbar_add_utils_queue(bec_dock_area):
|
138
|
+
bec_dock_area.toolbar.widgets["menu_utils"].widgets["queue"].trigger()
|
139
|
+
assert "queue_1" in bec_dock_area.panels
|
140
|
+
assert bec_dock_area.panels["queue_1"].widgets[0].config.widget_class == "BECQueue"
|
141
|
+
|
142
|
+
|
143
|
+
def test_toolbar_add_utils_status(bec_dock_area):
|
144
|
+
bec_dock_area.toolbar.widgets["menu_utils"].widgets["status"].trigger()
|
145
|
+
assert "status_1" in bec_dock_area.panels
|
146
|
+
assert bec_dock_area.panels["status_1"].widgets[0].config.widget_class == "BECStatusBox"
|
147
|
+
|
148
|
+
|
149
|
+
def test_toolbar_add_utils_progress_bar(bec_dock_area):
|
150
|
+
bec_dock_area.toolbar.widgets["menu_utils"].widgets["progress_bar"].trigger()
|
151
|
+
assert "progress_bar_1" in bec_dock_area.panels
|
152
|
+
assert (
|
153
|
+
bec_dock_area.panels["progress_bar_1"].widgets[0].config.widget_class == "RingProgressBar"
|
154
|
+
)
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
File without changes
|
/bec_widgets/widgets/device_combobox/{device_combobox.pyproject → device_combo_box.pyproject}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|