diff --git a/src/napari_matplotlib/base.py b/src/napari_matplotlib/base.py index daf7bac9..25b10ee7 100644 --- a/src/napari_matplotlib/base.py +++ b/src/napari_matplotlib/base.py @@ -183,6 +183,7 @@ def _update_layers(self, event: napari.utils.events.Event) -> None: Update the ``layers`` attribute with currently selected layers and re-draw. """ self.layers = list(self.viewer.layers.selection) + self.layers = sorted(self.layers, key=lambda layer: layer.name) self.on_update_layers() self._draw() diff --git a/src/napari_matplotlib/tests/baseline/test_scatter.png b/src/napari_matplotlib/tests/baseline/test_scatter.png new file mode 100644 index 00000000..1fd7d9e8 Binary files /dev/null and b/src/napari_matplotlib/tests/baseline/test_scatter.png differ diff --git a/src/napari_matplotlib/tests/test_scatter.py b/src/napari_matplotlib/tests/test_scatter.py index 88e0584c..d1101909 100644 --- a/src/napari_matplotlib/tests/test_scatter.py +++ b/src/napari_matplotlib/tests/test_scatter.py @@ -1,17 +1,32 @@ +from copy import deepcopy from typing import Any, Dict, Tuple import numpy as np import numpy.typing as npt +import pytest from napari_matplotlib import FeaturesScatterWidget, ScatterWidget -def test_scatter(make_napari_viewer): - # Smoke test adding a scatter widget +@pytest.mark.mpl_image_compare +def test_scatter(make_napari_viewer, astronaut_data): viewer = make_napari_viewer() - viewer.add_image(np.random.random((100, 100))) - viewer.add_image(np.random.random((100, 100))) - ScatterWidget(viewer) + widget = ScatterWidget(viewer) + fig = widget.figure + + viewer.add_image(astronaut_data[0], **astronaut_data[1], name="astronaut") + + viewer.add_image( + astronaut_data[0] * -1, **astronaut_data[1], name="astronaut_reversed" + ) + # De-select existing selection + viewer.layers.selection.clear() + + # Select images + viewer.layers.selection.add(viewer.layers[0]) + viewer.layers.selection.add(viewer.layers[1]) + + return deepcopy(fig) def test_features_scatter_widget(make_napari_viewer):