From 73cd11e47277e4437554b785a9551b28a572094f Mon Sep 17 00:00:00 2001 From: wakonig_k Date: Sun, 28 Jul 2024 13:03:34 +0200 Subject: [PATCH] test: register all widgets with qtbot and close them --- tests/end-2-end/test_scan_control_e2e.py | 1 + tests/unit_tests/conftest.py | 1 + tests/unit_tests/test_bec_queue.py | 1 + tests/unit_tests/test_bec_status_box.py | 1 + tests/unit_tests/test_device_input_base.py | 9 +++++++-- tests/unit_tests/test_scan_control.py | 1 + tests/unit_tests/test_setting_dialog.py | 14 +++++++------- tests/unit_tests/test_spinner.py | 1 + tests/unit_tests/test_toggle.py | 1 + tests/unit_tests/test_vscode_widget.py | 2 ++ 10 files changed, 23 insertions(+), 9 deletions(-) diff --git a/tests/end-2-end/test_scan_control_e2e.py b/tests/end-2-end/test_scan_control_e2e.py index c0519f67..12bef7c6 100644 --- a/tests/end-2-end/test_scan_control_e2e.py +++ b/tests/end-2-end/test_scan_control_e2e.py @@ -12,6 +12,7 @@ def scan_control(qtbot, bec_client_lib): # , mock_dev): qtbot.addWidget(widget) qtbot.waitExposed(widget) yield widget + widget.close() def test_scan_control_populate_scans_e2e(scan_control): diff --git a/tests/unit_tests/conftest.py b/tests/unit_tests/conftest.py index cb4f14ae..c0752f8e 100644 --- a/tests/unit_tests/conftest.py +++ b/tests/unit_tests/conftest.py @@ -8,6 +8,7 @@ from bec_widgets.utils import bec_dispatcher as bec_dispatcher_module @pytest.fixture(autouse=True) def qapplication(qapp): # pylint: disable=unused-argument yield + qapp.processEvents() # make sure all events are processed before shutting down @pytest.fixture(autouse=True) diff --git a/tests/unit_tests/test_bec_queue.py b/tests/unit_tests/test_bec_queue.py index f5f24268..e213acb4 100644 --- a/tests/unit_tests/test_bec_queue.py +++ b/tests/unit_tests/test_bec_queue.py @@ -93,6 +93,7 @@ def bec_queue(qtbot, mocked_client): qtbot.addWidget(widget) qtbot.waitExposed(widget) yield widget + widget.close() def test_bec_queue(bec_queue, bec_queue_msg_full): diff --git a/tests/unit_tests/test_bec_status_box.py b/tests/unit_tests/test_bec_status_box.py index 164b83c7..95ebc1ab 100644 --- a/tests/unit_tests/test_bec_status_box.py +++ b/tests/unit_tests/test_bec_status_box.py @@ -20,6 +20,7 @@ def status_box(qtbot, mocked_client, service_status_fixture): qtbot.addWidget(widget) qtbot.waitExposed(widget) yield widget + widget.close() def test_update_top_item(status_box): diff --git a/tests/unit_tests/test_device_input_base.py b/tests/unit_tests/test_device_input_base.py index 824ab254..969caf1a 100644 --- a/tests/unit_tests/test_device_input_base.py +++ b/tests/unit_tests/test_device_input_base.py @@ -8,13 +8,18 @@ from .client_mocks import mocked_client # DeviceInputBase is meant to be mixed in a QWidget class DeviceInputWidget(DeviceInputBase, QWidget): - pass + def __init__(self, parent=None, client=None, config=None, gui_id=None): + super().__init__(client=client, config=config, gui_id=gui_id) + QWidget.__init__(self, parent=parent) @pytest.fixture -def device_input_base(mocked_client): +def device_input_base(qtbot, mocked_client): widget = DeviceInputWidget(client=mocked_client) + qtbot.addWidget(widget) + qtbot.waitExposed(widget) yield widget + widget.close() def test_device_input_base_init(device_input_base): diff --git a/tests/unit_tests/test_scan_control.py b/tests/unit_tests/test_scan_control.py index 0a3024c5..dde7c826 100644 --- a/tests/unit_tests/test_scan_control.py +++ b/tests/unit_tests/test_scan_control.py @@ -220,6 +220,7 @@ def scan_control(qtbot, mocked_client): # , mock_dev): qtbot.addWidget(widget) qtbot.waitExposed(widget) yield widget + widget.close() def test_populate_scans(scan_control, mocked_client): diff --git a/tests/unit_tests/test_setting_dialog.py b/tests/unit_tests/test_setting_dialog.py index eb6b7099..91d2fb11 100644 --- a/tests/unit_tests/test_setting_dialog.py +++ b/tests/unit_tests/test_setting_dialog.py @@ -46,23 +46,23 @@ def test_setting_widget_display_current_settings(setting_widget): # SettingsDialog tests ################################### @pytest.fixture -def settings_dialog(qtbot): +def settings_dialog(qtbot, setting_widget): parent_widget = QWidget() - settings_widget = SettingWidget() - settings_widget.set_target_widget = MagicMock() - settings_widget.display_current_settings = MagicMock() - settings_widget.accept_changes = MagicMock() + setting_widget.set_target_widget = MagicMock() + setting_widget.display_current_settings = MagicMock() + setting_widget.accept_changes = MagicMock() dialog = SettingsDialog( parent=parent_widget, - settings_widget=settings_widget, + settings_widget=setting_widget, window_title="Test Settings", config={"setting1": "value1", "setting2": "value2"}, ) qtbot.addWidget(dialog) qtbot.waitExposed(dialog) - yield dialog, parent_widget, settings_widget + yield dialog, parent_widget, setting_widget dialog.close() + parent_widget.close() def test_settings_dialog_initialization(settings_dialog): diff --git a/tests/unit_tests/test_spinner.py b/tests/unit_tests/test_spinner.py index c8e776c7..9546c8b2 100644 --- a/tests/unit_tests/test_spinner.py +++ b/tests/unit_tests/test_spinner.py @@ -12,6 +12,7 @@ def spinner_widget(qtbot): qtbot.addWidget(spinner) qtbot.waitExposed(spinner) yield spinner + spinner.close() def test_spinner_widget_paint_event(spinner_widget, qtbot): diff --git a/tests/unit_tests/test_toggle.py b/tests/unit_tests/test_toggle.py index d840a6d3..facc9e45 100644 --- a/tests/unit_tests/test_toggle.py +++ b/tests/unit_tests/test_toggle.py @@ -10,6 +10,7 @@ def toggle(qtbot): qtbot.addWidget(widget) qtbot.waitExposed(widget) yield widget + widget.close() def test_toggle(toggle): diff --git a/tests/unit_tests/test_vscode_widget.py b/tests/unit_tests/test_vscode_widget.py index cea1eb65..82c770f2 100644 --- a/tests/unit_tests/test_vscode_widget.py +++ b/tests/unit_tests/test_vscode_widget.py @@ -14,7 +14,9 @@ from .client_mocks import mocked_client def vscode_widget(qtbot, mocked_client): with mock.patch("bec_widgets.widgets.vscode.vscode.subprocess.Popen") as mock_popen: widget = VSCodeEditor(client=mocked_client) + # qtbot.addWidget(widget) yield widget + # widget.close() def test_vscode_widget(qtbot, vscode_widget):