diff --git a/lib/matplotlib/backend_bases.py b/lib/matplotlib/backend_bases.py index 7fec6081f405..4aa6f667a93c 100644 --- a/lib/matplotlib/backend_bases.py +++ b/lib/matplotlib/backend_bases.py @@ -2130,6 +2130,8 @@ def print_figure(self, filename, dpi=None, facecolor=None, edgecolor=None, if format is None: # get format from filename, or from backend's default filetype + if isinstance(filename, getattr(os, "PathLike", ())): + filename = os.fspath(filename) if isinstance(filename, six.string_types): format = os.path.splitext(filename)[1][1:] if format is None or format == '': diff --git a/lib/matplotlib/tests/baseline_images/test_widgets/check_bunch_of_radio_buttons.png b/lib/matplotlib/tests/baseline_images/test_widgets/check_bunch_of_radio_buttons.png new file mode 100644 index 000000000000..0c09959a0358 Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_widgets/check_bunch_of_radio_buttons.png differ diff --git a/lib/matplotlib/tests/baseline_images/test_widgets/check_radio_buttons.png b/lib/matplotlib/tests/baseline_images/test_widgets/check_radio_buttons.png index c1ed74347bfe..0b83eb7d5ace 100644 Binary files a/lib/matplotlib/tests/baseline_images/test_widgets/check_radio_buttons.png and b/lib/matplotlib/tests/baseline_images/test_widgets/check_radio_buttons.png differ diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py index 93d2639056ac..229ce192cc75 100644 --- a/lib/matplotlib/tests/test_figure.py +++ b/lib/matplotlib/tests/test_figure.py @@ -1,6 +1,5 @@ from __future__ import absolute_import, division, print_function -import os import sys import warnings @@ -379,6 +378,11 @@ def test_figure_repr(): @pytest.mark.skipif(sys.version_info < (3, 6), reason="requires Python 3.6+") @pytest.mark.parametrize("fmt", ["png", "pdf", "ps", "eps", "svg"]) -def test_fspath(fmt): +def test_fspath(fmt, tmpdir): from pathlib import Path - plt.savefig(Path(os.devnull), format=fmt) + out = Path(tmpdir, "test.{}".format(fmt)) + plt.savefig(out) + with out.open("rb") as file: + # All the supported formats include the format name (case-insensitive) + # in the first 100 bytes. + assert fmt.encode("ascii") in file.read(100).lower() diff --git a/lib/matplotlib/tests/test_widgets.py b/lib/matplotlib/tests/test_widgets.py index afd50ef24e3c..70e7b55080ab 100644 --- a/lib/matplotlib/tests/test_widgets.py +++ b/lib/matplotlib/tests/test_widgets.py @@ -260,8 +260,7 @@ def test_CheckButtons(): check.disconnect(cid) -@image_comparison(baseline_images=['check_radio_buttons'], extensions=['png'], - style='default') +@image_comparison(baseline_images=['check_radio_buttons'], extensions=['png']) def test_check_radio_buttons_image(): get_ax() plt.subplots_adjust(left=0.3) @@ -271,6 +270,10 @@ def test_check_radio_buttons_image(): widgets.CheckButtons(rax2, ('Check 1', 'Check 2', 'Check 3'), (False, True, True)) +@image_comparison(baseline_images=['check_bunch_of_radio_buttons'], extensions=['png']) +def test_check_bunch_of_radio_buttons(): + rax = plt.axes([0.05, 0.1, 0.15, 0.7]) + widgets.RadioButtons(rax, ('B1', 'B2', 'B3', 'B4', 'B5','B6', 'B7', 'B8', 'B9', 'B10', 'B11', 'B12', 'B13', 'B14', 'B15')) def test_slider_slidermin_slidermax_invalid(): fig, ax = plt.subplots()