Skip to content

Commit

Permalink
fix tests (#20)
Browse files Browse the repository at this point in the history
* fix those tests
  • Loading branch information
bgraedel authored Oct 1, 2023
1 parent 436930e commit ae092af
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 15 deletions.
20 changes: 14 additions & 6 deletions src/arcos_gui/_tests/test_helper_functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@
from arcos_gui._main_widget import MainWindow


def test_open_plugin(make_napari_viewer):
def test_open_plugin(make_napari_viewer, qtbot):
viewer = make_napari_viewer()

plugin = open_plugin(viewer)
qtbot.addWidget(plugin)

assert isinstance(plugin, MainWindow)

Expand Down Expand Up @@ -64,9 +65,10 @@ def test_load_sample_data_invalid_data(make_napari_viewer):
)


def test_load_dataframe(make_napari_viewer):
def test_load_dataframe(make_napari_viewer, qtbot):
viewer = make_napari_viewer()
plugin = open_plugin(viewer)
qtbot.addWidget(plugin)
load_dataframe(
df=sample_df,
frame_column="frame",
Expand All @@ -84,17 +86,19 @@ def test_load_dataframe(make_napari_viewer):
assert plugin.data.original_data.value.empty is False


def test_load_dataframe_with_columnpicker(make_napari_viewer):
def test_load_dataframe_with_columnpicker(make_napari_viewer, qtbot):
viewer = make_napari_viewer()
plugin = open_plugin(viewer)
qtbot.addWidget(plugin)
load_dataframe_with_columnpicker(df=sample_df, plugin=plugin)
assert plugin._input_controller.picker.isVisibleTo(plugin)
plugin._input_controller.picker.close()


def test_filter_data(make_napari_viewer, capsys):
def test_filter_data(make_napari_viewer, capsys, qtbot):
viewer = make_napari_viewer()
plugin = open_plugin(viewer)
qtbot.addWidget(plugin)
plugin.data.columns.value.frame_column = "t"
plugin.data.columns.value.x_column = "x"
plugin.data.columns.value.y_column = "y"
Expand All @@ -114,6 +118,7 @@ def test_filter_data(make_napari_viewer, capsys):
def test_run_binarization_only(make_napari_viewer, qtbot):
viewer = make_napari_viewer()
plugin = open_plugin(viewer)
qtbot.addWidget(plugin)
plugin.data.columns.value.frame_column = "t"
plugin.data.columns.value.x_column = "x"
plugin.data.columns.value.y_column = "y"
Expand Down Expand Up @@ -143,6 +148,7 @@ def test_run_binarization_only(make_napari_viewer, qtbot):
def test_run_arcos(make_napari_viewer, qtbot):
viewer = make_napari_viewer()
plugin = open_plugin(viewer)
qtbot.addWidget(plugin)
plugin.data.columns.value.frame_column = "t"
plugin.data.columns.value.x_column = "x"
plugin.data.columns.value.y_column = "y"
Expand Down Expand Up @@ -172,9 +178,10 @@ def test_run_arcos(make_napari_viewer, qtbot):
assert len(viewer.layers) == 4


def test_get_arcos_output(make_napari_viewer):
def test_get_arcos_output(make_napari_viewer, qtbot):
viewer = make_napari_viewer()
plugin = open_plugin(viewer)
qtbot.addWidget(plugin)
# Mocking output and stats for the plugin. Replace with suitable mock data.
mock_output = MagicMock(spec=pd.DataFrame)
mock_stats = MagicMock(spec=pd.DataFrame)
Expand All @@ -186,8 +193,9 @@ def test_get_arcos_output(make_napari_viewer):
assert stats == mock_stats


def test_get_current_arcos_plugin(make_napari_viewer):
def test_get_current_arcos_plugin(make_napari_viewer, qtbot):
viewer = make_napari_viewer()
plugin = open_plugin(viewer)
qtbot.addWidget(plugin)
retrieved_plugin = get_current_arcos_plugin()
assert retrieved_plugin == plugin
16 changes: 7 additions & 9 deletions src/arcos_gui/_tests/test_main_widget.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from __future__ import annotations

import gc
from typing import TYPE_CHECKING
from unittest.mock import patch

Expand All @@ -9,23 +8,20 @@
from arcos_gui._main_widget import MainWindow
from arcos_gui.processing._arcos_wrapper import calculate_arcos_stats
from arcos_gui.tools._config import ARCOS_LAYERS
from pytestqt.qtbot import QtBot

if TYPE_CHECKING:
import napari.viewer
from pytestqt.qtbot import QtBot


@pytest.fixture()
def dock_arcos_widget(make_napari_viewer, qtbot):
def dock_arcos_widget(make_napari_viewer, qtbot: QtBot):
from arcos_gui._main_widget import MainWindow

viewer = make_napari_viewer()
mywidget = MainWindow(viewer=viewer)
qtbot.addWidget(mywidget)
yield viewer, mywidget, qtbot
mywidget.deleteLater()
viewer.close()
gc.collect()
return viewer, mywidget, qtbot


@pytest.fixture()
Expand Down Expand Up @@ -214,8 +210,9 @@ def test_load_data_with_measurement_math(
mywidget._input_controller.picker.additional_filter.setCurrentText("None")
mywidget._input_controller.picker.measurement_math.setCurrentText("Add")
# user clicks ok
with qtbot.waitSignal(mywidget._input_controller.loading_worker.finished):
mywidget._input_controller.picker.ok_button.click()
mywidget._input_controller.picker.ok_button.click()
qtbot.waitSignal(mywidget._input_controller.loading_worker.finished)
qtbot.waitUntil(lambda: mywidget.data.original_data.value.empty is False)

columnames_list = mywidget.data.columns.value.pickablepickable_columns_names
assert columnames_list == [
Expand Down Expand Up @@ -285,6 +282,7 @@ def test_add_all_layers_with_data(
assert viewer.layers[1].name == ARCOS_LAYERS["active_cells"]
assert viewer.layers[2].name == ARCOS_LAYERS["collective_events_cells"]
assert viewer.layers[3].name == ARCOS_LAYERS["event_hulls"]
qtbot.wait(1000)


def test_first_all_then_bin(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -647,6 +647,7 @@ def test_load_data_from_multiple_label_properties_with_tracks_fail(

controller.picker.ok_button.click()
qtbot.waitSignal(controller.matching_worker.finished)
qtbot.wait(500)

capture_output = capsys.readouterr()
assert (
Expand Down

0 comments on commit ae092af

Please sign in to comment.