From d626caae3dc71683134cc47073bc131eba4820f5 Mon Sep 17 00:00:00 2001 From: David Perl Date: Fri, 6 Jun 2025 14:53:29 +0200 Subject: [PATCH] perf: replace wait with waitUntil --- tests/end-2-end/test_bec_dock_rpc_e2e.py | 1 - tests/unit_tests/test_axis_settings.py | 21 ++++++++++------- tests/unit_tests/test_bec_dock.py | 13 ++++------- tests/unit_tests/test_image_roi_tree.py | 18 +++++++-------- tests/unit_tests/test_image_view_next_gen.py | 24 +++++++++++++++----- 5 files changed, 45 insertions(+), 32 deletions(-) diff --git a/tests/end-2-end/test_bec_dock_rpc_e2e.py b/tests/end-2-end/test_bec_dock_rpc_e2e.py index e78f43e3..a6d00d73 100644 --- a/tests/end-2-end/test_bec_dock_rpc_e2e.py +++ b/tests/end-2-end/test_bec_dock_rpc_e2e.py @@ -51,7 +51,6 @@ def test_rpc_add_dock_with_plots_e2e(qtbot, bec_client_lib, connected_client_gui # Waii until docks are registered qtbot.waitUntil(check_docks_registered, timeout=5000) - qtbot.wait(500) assert len(dock.panels) == 3 assert hasattr(gui.bec, "dock_0") diff --git a/tests/unit_tests/test_axis_settings.py b/tests/unit_tests/test_axis_settings.py index a896d0c6..88acc04b 100644 --- a/tests/unit_tests/test_axis_settings.py +++ b/tests/unit_tests/test_axis_settings.py @@ -168,11 +168,16 @@ def test_accept_changes(axis_settings_fixture, qtbot): axis_settings.ui.x_grid.checked = True axis_settings.accept_changes() - qtbot.wait(200) - - assert plot_base.title == "New Title" - assert plot_base.x_min == 10 - assert plot_base.x_max == 20 - assert plot_base.x_label == "New X Label" - assert plot_base.x_log is True - assert plot_base.x_grid is True + qtbot.waitUntil( + lambda: all( + [ + plot_base.title == "New Title", + plot_base.x_min == 10, + plot_base.x_max == 20, + plot_base.x_label == "New X Label", + plot_base.x_log is True, + plot_base.x_grid is True, + ] + ), + timeout=200, + ) diff --git a/tests/unit_tests/test_bec_dock.py b/tests/unit_tests/test_bec_dock.py index 45aeae73..53405059 100644 --- a/tests/unit_tests/test_bec_dock.py +++ b/tests/unit_tests/test_bec_dock.py @@ -47,24 +47,21 @@ def test_bec_dock_area_add_remove_dock(bec_dock_area, qtbot): # Remove docks d0_name = d0.name() bec_dock_area.delete(d0_name) - qtbot.wait(200) d1.remove() - qtbot.wait(200) - assert len(bec_dock_area.dock_area.docks) == initial_count + 1 + qtbot.waitUntil(lambda: len(bec_dock_area.dock_area.docks) == initial_count + 1, timeout=200) assert d0.name() not in dict(bec_dock_area.dock_area.docks) assert d1.name() not in dict(bec_dock_area.dock_area.docks) assert d2.name() in dict(bec_dock_area.dock_area.docks) def test_close_docks(bec_dock_area, qtbot): - d0 = bec_dock_area.new(name="dock_0") - d1 = bec_dock_area.new(name="dock_1") - d2 = bec_dock_area.new(name="dock_2") + _ = bec_dock_area.new(name="dock_0") + _ = bec_dock_area.new(name="dock_1") + _ = bec_dock_area.new(name="dock_2") bec_dock_area.delete_all() - qtbot.wait(200) - assert len(bec_dock_area.dock_area.docks) == 0 + qtbot.waitUntil(lambda: len(bec_dock_area.dock_area.docks) == 0) def test_undock_and_dock_docks(bec_dock_area, qtbot): diff --git a/tests/unit_tests/test_image_roi_tree.py b/tests/unit_tests/test_image_roi_tree.py index ce2745a8..aa79def3 100644 --- a/tests/unit_tests/test_image_roi_tree.py +++ b/tests/unit_tests/test_image_roi_tree.py @@ -120,11 +120,11 @@ def test_roi_name_edit(roi_tree, image_widget, qtbot): roi_tree.tree.editItem(item, roi_tree.COL_ROI) qtbot.keyClicks(roi_tree.tree.viewport().focusWidget(), "new_name") qtbot.keyClick(roi_tree.tree.viewport().focusWidget(), Qt.Key_Return) - qtbot.wait(200) - # Check the ROI name was updated - assert roi.label == "new_name" - assert item.text(roi_tree.COL_ROI) == "new_name" + qtbot.waitUntil( + lambda: all([roi.label == "new_name", item.text(roi_tree.COL_ROI) == "new_name"]), + timeout=200, + ) def test_roi_width_edit(roi_tree, image_widget, qtbot): @@ -138,9 +138,8 @@ def test_roi_width_edit(roi_tree, image_widget, qtbot): # Change the width width_spin.setValue(25) - qtbot.wait(200) # Check the ROI width was updated - assert roi.line_width == 25 + qtbot.waitUntil(lambda: roi.line_width == 25, timeout=200) def test_delete_roi_button(roi_tree, image_widget, qtbot): @@ -153,11 +152,12 @@ def test_delete_roi_button(roi_tree, image_widget, qtbot): del_btn = layout.itemAt(1).widget() del_btn.click() - qtbot.wait(200) # Verify ROI was removed - assert roi not in roi_tree.roi_items - assert roi not in image_widget.roi_controller.rois + qtbot.waitUntil( + lambda: all([roi not in roi_tree.roi_items, roi not in image_widget.roi_controller.rois]), + timeout=200, + ) def test_roi_color_change_from_roi(roi_tree, image_widget): diff --git a/tests/unit_tests/test_image_view_next_gen.py b/tests/unit_tests/test_image_view_next_gen.py index 7ad9ab1d..e66d45a4 100644 --- a/tests/unit_tests/test_image_view_next_gen.py +++ b/tests/unit_tests/test_image_view_next_gen.py @@ -508,19 +508,31 @@ def test_crosshair_roi_panels_visibility(qtbot, mocked_client): # Enable ROI crosshair switch.actions["crosshair_roi"].action.trigger() - qtbot.wait(500) # Panels must be visible - assert bec_image_view.side_panel_x.panel_height > 0 - assert bec_image_view.side_panel_y.panel_width > 0 + qtbot.waitUntil( + lambda: all( + [ + bec_image_view.side_panel_x.panel_height > 0, + bec_image_view.side_panel_y.panel_width > 0, + ] + ), + timeout=500, + ) # Disable ROI crosshair switch.actions["crosshair_roi"].action.trigger() - qtbot.wait(500) # Panels hidden again - assert bec_image_view.side_panel_x.panel_height == 0 - assert bec_image_view.side_panel_y.panel_width == 0 + qtbot.waitUntil( + lambda: all( + [ + bec_image_view.side_panel_x.panel_height == 0, + bec_image_view.side_panel_y.panel_width == 0, + ] + ), + timeout=500, + ) def test_roi_plot_data_from_image(qtbot, mocked_client):