Skip to content

Commit 53e124b

Browse files
Add tests of do_3d_projection deprecation
Co-authored-by: Thomas A Caswell <tcaswell@gmail.com>
1 parent 8305079 commit 53e124b

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

lib/mpl_toolkits/tests/test_mplot3d.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1711,3 +1711,63 @@ def test_view_init_vertical_axis(
17111711
tickdir_expected = tickdirs_expected[i]
17121712
tickdir_actual = axis._get_tickdir()
17131713
np.testing.assert_array_equal(tickdir_expected, tickdir_actual)
1714+
1715+
1716+
def test_do_3d_projection_renderer_deprecation_warn_on_argument():
1717+
"""
1718+
Test that an external artist with an old-style calling convention raises
1719+
a suitable deprecation warning.
1720+
"""
1721+
class DummyPatch(art3d.Patch3D):
1722+
def do_3d_projection(self, renderer):
1723+
return 0
1724+
1725+
def draw(self, renderer):
1726+
pass
1727+
1728+
fig = plt.figure()
1729+
ax = fig.add_subplot(111, projection='3d')
1730+
artist = DummyPatch()
1731+
ax.add_artist(artist)
1732+
1733+
match = r"The 'renderer' parameter of do_3d_projection\(\) was deprecated"
1734+
with pytest.warns(MatplotlibDeprecationWarning, match=match):
1735+
fig.canvas.draw()
1736+
1737+
1738+
def test_do_3d_projection_renderer_deprecation_nowarn_on_optional_argument():
1739+
"""
1740+
Test that an external artist with a calling convention compatible with
1741+
both v3.3 and v3.4 does not raise a deprecation warning.
1742+
"""
1743+
class DummyPatch(art3d.Patch3D):
1744+
def do_3d_projection(self, renderer=None):
1745+
return 0
1746+
1747+
def draw(self, renderer):
1748+
pass
1749+
1750+
fig = plt.figure()
1751+
ax = fig.add_subplot(111, projection='3d')
1752+
artist = DummyPatch()
1753+
ax.add_artist(artist)
1754+
fig.canvas.draw()
1755+
1756+
1757+
def test_do_3d_projection_renderer_deprecation_nowarn_on_no_argument():
1758+
"""
1759+
Test that an external artist with a calling convention compatible with
1760+
only v3.4 does not raise a deprecation warning.
1761+
"""
1762+
class DummyPatch(art3d.Patch3D):
1763+
def do_3d_projection(self):
1764+
return 0
1765+
1766+
def draw(self, renderer):
1767+
pass
1768+
1769+
fig = plt.figure()
1770+
ax = fig.add_subplot(111, projection='3d')
1771+
artist = DummyPatch()
1772+
ax.add_artist(artist)
1773+
fig.canvas.draw()

0 commit comments

Comments
 (0)