|
1 | 1 | import napari
|
| 2 | +import numpy as np |
2 | 3 | import pytest
|
3 | 4 |
|
| 5 | +from napari_matplotlib import ScatterWidget |
4 | 6 | from napari_matplotlib.base import NapariMPLWidget
|
5 | 7 |
|
6 | 8 |
|
@@ -49,3 +51,37 @@ def test_theme_background_check(make_napari_viewer):
|
49 | 51 | _mock_up_theme()
|
50 | 52 | viewer.theme = "blue"
|
51 | 53 | assert widget._theme_has_light_bg() is True
|
| 54 | + |
| 55 | + |
| 56 | +@pytest.mark.parametrize( |
| 57 | + "theme_name, expected_text_colour", |
| 58 | + [("dark", "white"), ("light", "black")], |
| 59 | +) |
| 60 | +def test_titles_respect_theme( |
| 61 | + make_napari_viewer, theme_name, expected_text_colour |
| 62 | +): |
| 63 | + """ |
| 64 | + Test that the axis labels and titles are the correct color for the napari theme. |
| 65 | + """ |
| 66 | + viewer = make_napari_viewer() |
| 67 | + widget = ScatterWidget(viewer) |
| 68 | + viewer.theme = theme_name |
| 69 | + |
| 70 | + # make a scatter plot of two random layers |
| 71 | + viewer.add_image(np.random.random((10, 10)), name="first test image") |
| 72 | + viewer.add_image(np.random.random((10, 10)), name="second test image") |
| 73 | + viewer.layers.selection.clear() |
| 74 | + viewer.layers.selection.add(viewer.layers[0]) |
| 75 | + viewer.layers.selection.add(viewer.layers[1]) |
| 76 | + |
| 77 | + ax = widget.figure.gca() |
| 78 | + |
| 79 | + # sanity test to make sure we've got the correct image names |
| 80 | + assert ax.xaxis.label.get_text() == "first test image" |
| 81 | + assert ax.yaxis.label.get_text() == "second test image" |
| 82 | + |
| 83 | + # print(dir(ax.yaxis.label)) |
| 84 | + # TODO: put checks of the axis tick labels here |
| 85 | + |
| 86 | + assert ax.xaxis.label.get_color() == expected_text_colour |
| 87 | + assert ax.yaxis.label.get_color() == expected_text_colour |
0 commit comments