From 5c29be4383e544daf587098d8a1b2edb7c5cece3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 08:29:04 +0000 Subject: [PATCH] fix: address code review feedback - clean up test and add error handling Agent-Logs-Url: https://github.com/bec-project/bec_widgets/sessions/872a29f8-acdf-42e5-94b9-bad871aef4a0 Co-authored-by: wyzula-jan <133381102+wyzula-jan@users.noreply.github.com> --- bec_widgets/widgets/containers/dock_area/dock_area.py | 6 +++++- tests/unit_tests/test_dock_area.py | 7 ------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/bec_widgets/widgets/containers/dock_area/dock_area.py b/bec_widgets/widgets/containers/dock_area/dock_area.py index adcdeb83..7b9b900c 100644 --- a/bec_widgets/widgets/containers/dock_area/dock_area.py +++ b/bec_widgets/widgets/containers/dock_area/dock_area.py @@ -400,7 +400,11 @@ class BECDockArea(DockAreaWidget): _build_menu("menu_utils", "Add Utils ", util_actions) # Build plugin widget menu (only shown when plugin widgets are available) - plugin_widgets_dict = get_all_plugin_widgets().as_dict() + try: + plugin_widgets_dict = get_all_plugin_widgets().as_dict() + except Exception: + logger.warning("Failed to load plugin widgets for toolbar menu.", exc_info=True) + plugin_widgets_dict = {} plugin_actions: dict[str, tuple[str, str, str]] = { widget_name: ( getattr(widget_cls, "ICON_NAME", "widgets"), diff --git a/tests/unit_tests/test_dock_area.py b/tests/unit_tests/test_dock_area.py index dc94c7a7..8602bc47 100644 --- a/tests/unit_tests/test_dock_area.py +++ b/tests/unit_tests/test_dock_area.py @@ -1043,7 +1043,6 @@ class TestToolbarFunctionality: def test_plugin_menu_shown_when_plugins_available(self, qtbot, mocked_client): """Test that the plugin menu is shown when plugin widgets are available.""" from bec_widgets.utils.bec_widget import BECWidget - from bec_widgets.utils.plugin_utils import BECClassContainer, BECClassInfo from qtpy.QtWidgets import QWidget as _QWidget class FakePluginWidget(BECWidget, _QWidget): @@ -1053,15 +1052,9 @@ class TestToolbarFunctionality: def __init__(self, parent=None, **kwargs): super().__init__(parent=parent, **kwargs) - container = BECClassContainer( - [BECClassInfo(name="FakePluginWidget", module="fake", file="fake.py", obj=FakePluginWidget)] - ) - with patch( "bec_widgets.widgets.containers.dock_area.dock_area.get_all_plugin_widgets" ) as mock_plugins: - mock_plugins.return_value = container - # Make as_dict() return our fake widget container_mock = MagicMock() container_mock.as_dict.return_value = {"FakePluginWidget": FakePluginWidget} mock_plugins.return_value = container_mock