diff --git a/lib/matplotlib/tests/test_delaunay.py b/lib/matplotlib/tests/test_delaunay.py index 49f10f811c93..373f77404fe0 100644 --- a/lib/matplotlib/tests/test_delaunay.py +++ b/lib/matplotlib/tests/test_delaunay.py @@ -3,10 +3,16 @@ import six from six.moves import xrange +import warnings import numpy as np from matplotlib.testing.decorators import image_comparison, knownfailureif -from matplotlib.delaunay.triangulate import Triangulation +from matplotlib.cbook import MatplotlibDeprecationWarning + +with warnings.catch_warnings(): + # the module is deprecated. The tests should be removed when the module is. + warnings.simplefilter('ignore', MatplotlibDeprecationWarning) + from matplotlib.delaunay.triangulate import Triangulation from matplotlib import pyplot as plt import matplotlib as mpl diff --git a/lib/matplotlib/tests/test_mlab.py b/lib/matplotlib/tests/test_mlab.py index 0cc991f05ebf..36935793e05a 100644 --- a/lib/matplotlib/tests/test_mlab.py +++ b/lib/matplotlib/tests/test_mlab.py @@ -6,6 +6,7 @@ import tempfile from numpy.testing import assert_allclose, assert_array_equal +import numpy.ma.testutils as matest import numpy as np from nose.tools import (assert_equal, assert_almost_equal, assert_not_equal, assert_true, assert_raises) @@ -2714,7 +2715,7 @@ def get_z(x, y): z_masked = np.ma.array(z, mask=[False, False, False, True, False]) correct_zi_masked = np.ma.masked_where(xi + yi > 1.0, get_z(xi, yi)) zi = mlab.griddata(x, y, z_masked, xi, yi, interp='linear') - np.testing.assert_array_almost_equal(zi, correct_zi_masked) + matest.assert_array_almost_equal(zi, correct_zi_masked) np.testing.assert_array_equal(np.ma.getmask(zi), np.ma.getmask(correct_zi_masked)) diff --git a/lib/matplotlib/tests/test_rcparams.py b/lib/matplotlib/tests/test_rcparams.py index 9d6d0613db76..928393ecd5c7 100644 --- a/lib/matplotlib/tests/test_rcparams.py +++ b/lib/matplotlib/tests/test_rcparams.py @@ -5,6 +5,7 @@ import os import sys +import warnings import matplotlib as mpl from matplotlib.tests import assert_str_equal @@ -97,29 +98,36 @@ def test_RcParams_class(): def test_Bug_2543(): # Test that it possible to add all values to itself / deepcopy - # This was not possible because validate_bool_maybe_none did not + # This was not possible because validate_bool_maybe_none did not # accept None as an argument. # https://github.com/matplotlib/matplotlib/issues/2543 - with mpl.rc_context(): - _copy = mpl.rcParams.copy() - for key in six.iterkeys(_copy): - mpl.rcParams[key] = _copy[key] - mpl.rcParams['text.dvipnghack'] = None - with mpl.rc_context(): - from copy import deepcopy - _deep_copy = deepcopy(mpl.rcParams) - from matplotlib.rcsetup import validate_bool_maybe_none, validate_bool - # real test is that this does not raise - assert_true(validate_bool_maybe_none(None) is None) - assert_true(validate_bool_maybe_none("none") is None) - _fonttype = mpl.rcParams['svg.fonttype'] - assert_true(_fonttype == mpl.rcParams['svg.embed_char_paths']) - with mpl.rc_context(): - mpl.rcParams['svg.embed_char_paths'] = False - assert_true(mpl.rcParams['svg.fonttype'] == "none") + # We filter warnings at this stage since a number of them are raised + # for deprecated rcparams as they should. We dont want these in the + # printed in the test suite. + with warnings.catch_warnings(): + warnings.filterwarnings('ignore', + message='.*(deprecated|obsolete)', + category=UserWarning) + with mpl.rc_context(): + _copy = mpl.rcParams.copy() + for key in six.iterkeys(_copy): + mpl.rcParams[key] = _copy[key] + mpl.rcParams['text.dvipnghack'] = None + with mpl.rc_context(): + from copy import deepcopy + _deep_copy = deepcopy(mpl.rcParams) + from matplotlib.rcsetup import validate_bool_maybe_none, validate_bool + # real test is that this does not raise + assert_true(validate_bool_maybe_none(None) is None) + assert_true(validate_bool_maybe_none("none") is None) + _fonttype = mpl.rcParams['svg.fonttype'] + assert_true(_fonttype == mpl.rcParams['svg.embed_char_paths']) + with mpl.rc_context(): + mpl.rcParams['svg.embed_char_paths'] = False + assert_true(mpl.rcParams['svg.fonttype'] == "none") def test_Bug_2543_newer_python(): - # only split from above because of the usage of assert_raises + # only split from above because of the usage of assert_raises # as a context manager, which only works in 2.7 and above if sys.version_info[:2] < (2, 7): raise nose.SkipTest("assert_raises as context manager not supported with Python < 2.7") @@ -130,8 +138,8 @@ def test_Bug_2543_newer_python(): validate_bool(None) with assert_raises(ValueError): with mpl.rc_context(): - mpl.rcParams['svg.fonttype'] = True - + mpl.rcParams['svg.fonttype'] = True + if __name__ == '__main__': import nose nose.runmodule(argv=['-s', '--with-doctest'], exit=False) diff --git a/lib/matplotlib/tests/test_streamplot.py b/lib/matplotlib/tests/test_streamplot.py index d040fccb12a5..75b9e082da25 100644 --- a/lib/matplotlib/tests/test_streamplot.py +++ b/lib/matplotlib/tests/test_streamplot.py @@ -42,7 +42,8 @@ def test_masks_and_nans(): mask[40:60, 40:60] = 1 U = np.ma.array(U, mask=mask) U[:20, :20] = np.nan - plt.streamplot(X, Y, U, V, color=U, cmap=plt.cm.Blues) + with np.errstate(invalid='ignore'): + plt.streamplot(X, Y, U, V, color=U, cmap=plt.cm.Blues) @cleanup diff --git a/lib/matplotlib/tests/test_subplots.py b/lib/matplotlib/tests/test_subplots.py index b54158bb6de5..4400cbc4beb9 100644 --- a/lib/matplotlib/tests/test_subplots.py +++ b/lib/matplotlib/tests/test_subplots.py @@ -1,6 +1,7 @@ from __future__ import (absolute_import, division, print_function, unicode_literals) +import warnings import six from six.moves import xrange @@ -105,10 +106,16 @@ def test_exceptions(): # TODO should this test more options? assert_raises(ValueError, plt.subplots, 2, 2, sharex='blah') assert_raises(ValueError, plt.subplots, 2, 2, sharey='blah') - assert_raises(ValueError, plt.subplots, 2, 2, -1) - # uncomment this for 1.5 - # assert_raises(ValueError, plt.subplots, 2, 2, 0) - assert_raises(ValueError, plt.subplots, 2, 2, 5) + # We filter warnings in this test which are genuine since + # the pount of this test is to ensure that this raises. + with warnings.catch_warnings(): + warnings.filterwarnings('ignore', + message='.*sharex\ argument\ to\ subplots', + category=UserWarning) + assert_raises(ValueError, plt.subplots, 2, 2, -1) + # uncomment this for 1.5 + # assert_raises(ValueError, plt.subplots, 2, 2, 0) + assert_raises(ValueError, plt.subplots, 2, 2, 5) @image_comparison(baseline_images=['subplots_offset_text'], remove_text=False) diff --git a/lib/matplotlib/tests/test_tightlayout.py b/lib/matplotlib/tests/test_tightlayout.py index 14e1528faeba..e6935cae8c6b 100644 --- a/lib/matplotlib/tests/test_tightlayout.py +++ b/lib/matplotlib/tests/test_tightlayout.py @@ -2,6 +2,7 @@ unicode_literals) import six +import warnings import numpy as np @@ -10,12 +11,14 @@ from nose.tools import assert_raises from numpy.testing import assert_array_equal + def example_plot(ax, fontsize=12): - ax.plot([1, 2]) - ax.locator_params(nbins=3) - ax.set_xlabel('x-label', fontsize=fontsize) - ax.set_ylabel('y-label', fontsize=fontsize) - ax.set_title('Title', fontsize=fontsize) + ax.plot([1, 2]) + ax.locator_params(nbins=3) + ax.set_xlabel('x-label', fontsize=fontsize) + ax.set_ylabel('y-label', fontsize=fontsize) + ax.set_title('Title', fontsize=fontsize) + @image_comparison(baseline_images=['tight_layout1']) def test_tight_layout1(): @@ -81,50 +84,54 @@ def test_tight_layout5(): fig = plt.figure() ax = plt.subplot(111) - arr = np.arange(100).reshape((10,10)) + arr = np.arange(100).reshape((10, 10)) ax.imshow(arr, interpolation="none") plt.tight_layout() - @image_comparison(baseline_images=['tight_layout6']) def test_tight_layout6(): 'Test tight_layout for gridspec' - fig = plt.figure() + # This raises warnings since tight layout cannot + # do this fully automatically. But the test is + # correct since the layout is manually edited + with warnings.catch_warnings(): + warnings.simplefilter("ignore", UserWarning) + fig = plt.figure() - import matplotlib.gridspec as gridspec + import matplotlib.gridspec as gridspec - gs1 = gridspec.GridSpec(2, 1) - ax1 = fig.add_subplot(gs1[0]) - ax2 = fig.add_subplot(gs1[1]) + gs1 = gridspec.GridSpec(2, 1) + ax1 = fig.add_subplot(gs1[0]) + ax2 = fig.add_subplot(gs1[1]) - example_plot(ax1) - example_plot(ax2) + example_plot(ax1) + example_plot(ax2) - gs1.tight_layout(fig, rect=[0, 0, 0.5, 1]) + gs1.tight_layout(fig, rect=[0, 0, 0.5, 1]) - gs2 = gridspec.GridSpec(3, 1) + gs2 = gridspec.GridSpec(3, 1) - for ss in gs2: - ax = fig.add_subplot(ss) - example_plot(ax) - ax.set_title("") - ax.set_xlabel("") + for ss in gs2: + ax = fig.add_subplot(ss) + example_plot(ax) + ax.set_title("") + ax.set_xlabel("") - ax.set_xlabel("x-label", fontsize=12) + ax.set_xlabel("x-label", fontsize=12) - gs2.tight_layout(fig, rect=[0.5, 0, 1, 1], h_pad=0.45) + gs2.tight_layout(fig, rect=[0.5, 0, 1, 1], h_pad=0.45) - top = min(gs1.top, gs2.top) - bottom = max(gs1.bottom, gs2.bottom) + top = min(gs1.top, gs2.top) + bottom = max(gs1.bottom, gs2.bottom) - gs1.tight_layout(fig, rect=[None, 0 + (bottom-gs1.bottom), - 0.5, 1 - (gs1.top-top)]) - gs2.tight_layout(fig, rect=[0.5, 0 + (bottom-gs2.bottom), - None, 1 - (gs2.top-top)], - h_pad=0.45) + gs1.tight_layout(fig, rect=[None, 0 + (bottom-gs1.bottom), + 0.5, 1 - (gs1.top-top)]) + gs2.tight_layout(fig, rect=[0.5, 0 + (bottom-gs2.bottom), + None, 1 - (gs2.top-top)], + h_pad=0.45) @image_comparison(baseline_images=['tight_layout7']) diff --git a/lib/matplotlib/tests/test_triangulation.py b/lib/matplotlib/tests/test_triangulation.py index 90a8fe9d23d1..87719c29a63d 100644 --- a/lib/matplotlib/tests/test_triangulation.py +++ b/lib/matplotlib/tests/test_triangulation.py @@ -9,6 +9,7 @@ from nose.tools import assert_equal, assert_raises from numpy.testing import assert_array_equal, assert_array_almost_equal,\ assert_array_less +import numpy.ma.testutils as matest from matplotlib.testing.decorators import image_comparison import matplotlib.cm as cm from matplotlib.path import Path @@ -323,7 +324,7 @@ def test_triinterp(): xs, ys = np.meshgrid(xs, ys) for interp in (linear_interp, cubic_min_E, cubic_geom): zs = interp(xs, ys) - assert_array_almost_equal(zs, (1.23*xs - 4.79*ys)) + matest.assert_array_almost_equal(zs, (1.23*xs - 4.79*ys)) mask = (xs >= 1) * (xs <= 2) * (ys >= 1) * (ys <= 2) assert_array_equal(zs.mask, mask) @@ -697,7 +698,8 @@ def z(x, y): interp_z0[interp_key] = interp(xs0, ys0) # storage else: interpz = interp(xs, ys) - assert_array_almost_equal(interpz, interp_z0[interp_key]) + matest.assert_array_almost_equal(interpz, + interp_z0[interp_key]) scale_factor = 987654.3210 for scaled_axis in ('x', 'y'): @@ -723,7 +725,7 @@ def z(x, y): # 1 axis... for interp_key in ['lin', 'min_E', 'geom']: interpz = dic_interp[interp_key](xs, ys) - assert_array_almost_equal(interpz, interp_z0[interp_key]) + matest.assert_array_almost_equal(interpz, interp_z0[interp_key]) @image_comparison(baseline_images=['tri_smooth_contouring'],