From aede1f82fa3955cce9b68ac87d2f8f563f9b0627 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Mon, 12 Jun 2023 14:19:11 +0100 Subject: [PATCH] Test to guard against re-introducing #64. Use plt.subplots for safety. And no longer need copy.deepcopy. Save eyes and make a lovely histogram. --- .../baseline/test_no_theme_side_effects.png | Bin 0 -> 34981 bytes src/napari_matplotlib/tests/test_theme.py | 30 ++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/napari_matplotlib/tests/baseline/test_no_theme_side_effects.png diff --git a/src/napari_matplotlib/tests/baseline/test_no_theme_side_effects.png b/src/napari_matplotlib/tests/baseline/test_no_theme_side_effects.png new file mode 100644 index 0000000000000000000000000000000000000000..4888f3057f7fc01db5c0d863622167664f8d814f GIT binary patch literal 34981 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

-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 literal 0 HcmV?d00001 diff --git a/src/napari_matplotlib/tests/test_theme.py b/src/napari_matplotlib/tests/test_theme.py index dfeb5b5f..cf841d2b 100644 --- a/src/napari_matplotlib/tests/test_theme.py +++ b/src/napari_matplotlib/tests/test_theme.py @@ -88,3 +88,33 @@ def test_titles_respect_theme( assert ax.xaxis.label.get_color() == expected_text_colour assert ax.yaxis.label.get_color() == expected_text_colour + + +@pytest.mark.mpl_image_compare +def test_no_theme_side_effects(make_napari_viewer): + """Ensure that napari-matplotlib doesn't pollute the globally set style. + + A MWE to guard aganst issue matplotlib/#64. Should always reproduce a plot + with the default matplotlib style. + """ + import matplotlib.pyplot as plt + + np.random.seed(12345) + + # should not affect global matplotlib plot style + viewer = make_napari_viewer() + viewer.theme = "dark" + NapariMPLWidget(viewer) + + # some plotting unrelated to napari-matplotlib + normal_dist = np.random.normal(size=1000) + unrelated_figure, ax = plt.subplots() + ax.hist(normal_dist, bins=100) + ax.set_xlabel("something unrelated to napari (x)") + ax.set_ylabel("something unrelated to napari (y)") + ax.set_title( + "this plot style should not change with napari styles or themes" + ) + unrelated_figure.tight_layout() + + return unrelated_figure