From 2e200587771f35abeabc6fa902b1fd1467ccd077 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Wed, 11 Mar 2020 16:01:25 -0400 Subject: [PATCH] Make test_stem less flaky. Since parametrizing the test allows it to run in parallel, this makes it flaky, as one process can overwrite the test result image of another. Our standard way for dealing with tests that use the same baseline image is to pass duplicate filenames to `image_comparison`, because that is serialized. --- lib/matplotlib/tests/test_axes.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py index 6355b88de91a..21918c8fc4fb 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py @@ -3342,10 +3342,15 @@ def test_hist_stacked_weighted(): ax.hist((d1, d2), weights=(w1, w2), histtype="stepfilled", stacked=True) -@pytest.mark.parametrize("use_line_collection", [True, False], - ids=['w/ line collection', 'w/o line collection']) -@image_comparison(['stem.png'], style='mpl20', remove_text=True) -def test_stem(use_line_collection): +@image_comparison(['stem.png', 'stem.png'], style='mpl20', remove_text=True) +def test_stem(): + # Note, we don't use @pytest.mark.parametrize, because in parallel this + # might cause one process result to overwrite another's. + for use_line_collection in [True, False]: + _test_stem(use_line_collection) + + +def _test_stem(use_line_collection): x = np.linspace(0.1, 2 * np.pi, 100) args = (x, np.cos(x)) # Label is a single space to force a legend to be drawn, but to avoid any