Skip to content

Commit c07a8f5

Browse files
committed
feat: enable conditional loading of DeveloperView based on experimental features
1 parent 0121921 commit c07a8f5

2 files changed

Lines changed: 30 additions & 9 deletions

File tree

bec_widgets/applications/main_app.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
available_screen_geometry,
1919
main_app_size_for_screen,
2020
)
21+
from bec_widgets.widgets.containers.dock_area.profile_utils import is_experimental_features_enabled
2122
from bec_widgets.widgets.containers.main_window.main_window import BECMainWindow
2223

2324

@@ -63,7 +64,7 @@ def _add_views(self):
6364
self.add_section("BEC Applications", "bec_apps")
6465
self.dock_area = DockAreaView(self)
6566
self.device_manager = DeviceManagerView(self)
66-
# self.developer_view = DeveloperView(self) #TODO temporary disable until the bugs with BECShell are resolved
67+
self.developer_view = None
6768
self.admin_view = AdminView(self)
6869

6970
self.add_view(icon="widgets", title="Dock Area", widget=self.dock_area, mini_text="Docks")
@@ -73,14 +74,15 @@ def _add_views(self):
7374
widget=self.device_manager,
7475
mini_text="DM",
7576
)
76-
# TODO temporary disable until the bugs with BECShell are resolved
77-
# self.add_view(
78-
# icon="code_blocks",
79-
# title="IDE",
80-
# widget=self.developer_view,
81-
# mini_text="IDE",
82-
# exclusive=True,
83-
# )
77+
if is_experimental_features_enabled():
78+
self.developer_view = DeveloperView(self)
79+
self.add_view(
80+
icon="code_blocks",
81+
title="IDE",
82+
widget=self.developer_view,
83+
mini_text="IDE",
84+
exclusive=True,
85+
)
8486
self.add_view(
8587
icon="admin_panel_settings",
8688
title="Admin View",

tests/unit_tests/test_main_app.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
from bec_widgets.applications.main_app import BECMainApp
66
from bec_widgets.applications.views.view import ViewBase
77
from bec_widgets.utils.bec_widget import BECWidget
8+
from bec_widgets.widgets.containers.dock_area.profile_utils import (
9+
is_experimental_features_enabled,
10+
set_experimental_features_enabled,
11+
)
812

913
from .client_mocks import mocked_client
1014

@@ -136,6 +140,21 @@ def test_view_content_widget_is_hidden_from_namespace(app_with_spies):
136140
assert app.dock_area.content is app.dock_area.dock_area
137141

138142

143+
def test_developer_view_is_experimental_by_default(monkeypatch, tmp_path, qtbot, mocked_client):
144+
monkeypatch.setenv("BECWIDGETS_PROFILE_DIR", str(tmp_path))
145+
set_experimental_features_enabled(False)
146+
147+
app = BECMainApp(client=mocked_client, anim_duration=ANIM_TEST_DURATION, show_examples=False)
148+
qtbot.addWidget(app)
149+
app.show()
150+
qtbot.waitExposed(app)
151+
152+
assert is_experimental_features_enabled() is False
153+
assert (
154+
not hasattr(app, "developer_view") or app.sidebar.components.get("developer_view") is None
155+
)
156+
157+
139158
# def test_developer_plotting_area_parent_id_uses_view_namespace(app_with_spies): #TODO temp disabled due to disabled IDE view
140159
# app, _, _, _ = app_with_spies
141160
# plotting_area = app.developer_view.developer_widget.plotting_ads

0 commit comments

Comments
 (0)