Skip to content

Commit 62751ce

Browse files
[pre-commit.ci] pre-commit autoupdate (#349)
* [pre-commit.ci] pre-commit autoupdate updates: - [github.com/astral-sh/ruff-pre-commit: v0.9.6 → v0.11.5](astral-sh/ruff-pre-commit@v0.9.6...v0.11.5) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add viewer close * second attempt * attempt fix asv benchmark * revert * attempt fix qt leak * close viewer in interactive test * close viewer in cli tests * reattempt * don't close viewer with plot * attempt handling widget closing better * add git log for debug * remove git log * additional close viewer * ensure fetching main --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Wouter-Michiel Vierdag <[email protected]>
1 parent 949d630 commit 62751ce

File tree

7 files changed

+25
-10
lines changed

7 files changed

+25
-10
lines changed

.github/workflows/test.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,9 @@ jobs:
123123
PR: 1 # prevents asv from running very compute-intensive benchmarks
124124
PIP_CONSTRAINT: ${{ github.workspace }}/benchmarks/benchmark.txt
125125

126+
- name: Fetch main branch
127+
run: git fetch origin main:main
128+
126129
- name: Run benchmarks latest release
127130
# here we check if the benchmark on the latest release is not broken
128131
uses: aganders3/headless-gui@v2

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ repos:
4949
hooks:
5050
- id: blacken-docs
5151
- repo: https://github.com/astral-sh/ruff-pre-commit
52-
rev: v0.9.6
52+
rev: v0.11.5
5353
hooks:
5454
- id: ruff
5555
args: [--fix, --exit-non-zero-on-fix]

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,7 @@ Marconato, L., Palla, G., Yamauchi, K.A. et al. SpatialData: an open and univers
8181
[pip]: https://pypi.org/project/pip/
8282
[pypi]: https://pypi.org/
8383
[issue]: https://github.com/scverse/napari-spatialdata/issues
84-
85-
[//]: # (numfocus-fiscal-sponsor-attribution)
84+
[//]: # "numfocus-fiscal-sponsor-attribution"
8685

8786
napari-spatialdata is part of the scverse® project ([website](https://scverse.org), [governance](https://scverse.org/about/roles)) and is fiscally sponsored by [NumFOCUS](https://numfocus.org/).
8887
If you like scverse® and want to support our mission, please consider making a tax-deductible [donation](https://numfocus.org/donate-to-scverse) to help the project pay for developer time, professional services, travel, workshops, and a variety of other needs.

tests/test_aaa.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import pytest
2+
from napari.viewer import Viewer
23

34
from napari_spatialdata._model import DataModel
45
from napari_spatialdata._scatterwidgets import PlotWidget
@@ -21,3 +22,4 @@ def test_initialization(plot_widget):
2122
def test_elementwidget(make_napari_viewer):
2223
_ = make_napari_viewer()
2324
assert 1 == 1
25+
Viewer.close_all()

tests/test_cli.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ def test_view_exists():
1111
runner = CliRunner()
1212
result = runner.invoke(cli, ["view"])
1313
assert result.exit_code == 2 # Error because of missing argument
14+
Viewer.close_all()
1415

1516

1617
def test_view_path_not_exists():
@@ -22,6 +23,8 @@ def test_view_path_not_exists():
2223
)
2324
assert result.exit_code == 1
2425

26+
Viewer.close_all()
27+
2528

2629
def test_view_path_is_dir():
2730
runner = CliRunner()

tests/test_interactive.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ def test_switch_coordinate_system(self, sdata_blobs: SpatialData):
4848
i.switch_coordinate_system("global")
4949
assert i._sdata_widget.coordinate_system_widget._system == "global"
5050
assert i._sdata_widget.elements_widget._elements
51-
i._viewer.close()
51+
Viewer.close_all()
5252

5353

5454
def test_plot_can_add_element_switch_cs(sdata_blobs: SpatialData):
5555
i = Interactive(sdata=sdata_blobs, headless=True)
5656
i.add_element(element="blobs_image", element_coordinate_system="global", view_element_system=True)
5757
assert i._sdata_widget.coordinate_system_widget._system == "global"
5858
assert i._viewer.layers[-1].visible
59-
i._viewer.close()
59+
Viewer.close_all()
6060

6161

6262
class TestInteractive(PlotTester, metaclass=PlotTesterMeta):
@@ -66,13 +66,13 @@ def test_get_layer_existing(self, sdata_blobs: SpatialData):
6666
layer = i.get_layer("blobs_image")
6767
assert layer is not None, "Expected to retrieve the blobs_image layer, but got None"
6868
assert layer.name == "blobs_image", f"Expected layer name 'blobs_image', got {layer.name}"
69-
i._viewer.close()
69+
Viewer.close_all()
7070

7171
def test_get_layer_non_existing(self, sdata_blobs: SpatialData):
7272
i = Interactive(sdata=sdata_blobs, headless=True)
7373
layer = i.get_layer("non_existing_layer")
7474
assert layer is None, "Expected None for a non-existing layer, but got a layer"
75-
i._viewer.close()
75+
Viewer.close_all()
7676

7777
def test_add_text_to_polygons(self, sdata_blobs: SpatialData):
7878
i = Interactive(sdata=sdata_blobs, headless=True)
@@ -85,7 +85,7 @@ def test_add_text_to_polygons(self, sdata_blobs: SpatialData):
8585
# Verify that text is added
8686
i.add_text_to_polygons(layer_name="blobs_polygons", text_annotations=text_annotations)
8787
assert polygon_layer.text is not None, "Text annotations were not added to the polygon layer"
88-
i._viewer.close()
88+
Viewer.close_all()
8989

9090

9191
@pytest.mark.skipif(ARM_PROBLEM, reason="Test will segfault on ARM with numpy < 2")
@@ -96,3 +96,4 @@ def test_load_data_in_thread(make_napari_viewer: Callable[[], Viewer], sdata_blo
9696
with qtbot.waitSignal(i._sdata_widget.worker_thread.finished):
9797
i.add_element(element="blobs_image", element_coordinate_system="global")
9898
assert "blobs_image" in viewer.layers
99+
Viewer.close_all()

tests/test_scatterwidgets.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,19 @@ def coordinates_are_equal(coords1, coords2, tol=1e-6):
2525

2626

2727
@pytest.fixture
28-
def plot_widget(qtbot):
28+
def plot_widget(qtbot, request):
2929
"""Fixture for creating a PlotWidget instance."""
3030
model = DataModel()
3131
widget = PlotWidget(None, model)
3232
qtbot.addWidget(widget)
33-
yield widget
33+
34+
def cleanup():
35+
widget.close()
36+
QtWidgets.QApplication.processEvents() # flush events
37+
38+
request.addfinalizer(cleanup)
39+
40+
return widget
3441

3542

3643
def test_initialization(plot_widget):

0 commit comments

Comments
 (0)