diff --git a/.mailmap b/.mailmap index b0df2fbcd0c7..395e7c73ee0e 100644 --- a/.mailmap +++ b/.mailmap @@ -27,6 +27,7 @@ Jens Hedegaard Nielsen John Hunter Jorrit Wronski Jouni K. Seppänen +Joseph Fox-Rabinovitz Mad Physicist Julien Schueller Julien Schueller Kevin Davies diff --git a/lib/matplotlib/lines.py b/lib/matplotlib/lines.py index 32b51df5cf2e..9f8ba7a653f3 100644 --- a/lib/matplotlib/lines.py +++ b/lib/matplotlib/lines.py @@ -985,6 +985,9 @@ def set_drawstyle(self, drawstyle): ACCEPTS: ['default' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post'] """ + if drawstyle not in self.drawStyles: + raise ValueError('Unrecognized drawstyle ' + + ' '.join(self.drawStyleKeys)) if self._drawstyle != drawstyle: self.stale = True self._drawstyle = drawstyle diff --git a/lib/matplotlib/tests/test_lines.py b/lib/matplotlib/tests/test_lines.py index 775b02990add..dc0b1f7b461a 100644 --- a/lib/matplotlib/tests/test_lines.py +++ b/lib/matplotlib/tests/test_lines.py @@ -118,6 +118,29 @@ def test_valid_linestyles(): line.set_linestyle('aardvark') +@cleanup +def test_drawstyle_variants(): + fig = plt.figure() + ax = fig.add_subplot(1, 1, 1) + for ds in ("default", "steps-mid", "steps-pre", "steps-post", + "steps"): + ax.plot(range(10), drawstyle=ds) + + fig.canvas.draw() + assert True + + +@cleanup +def test_valid_drawstyles(): + if sys.version_info[:2] < (2, 7): + raise nose.SkipTest("assert_raises as context manager " + "not supported with Python < 2.7") + + line = mlines.Line2D([], []) + with assert_raises(ValueError): + line.set_drawstyle('foobar') + + @image_comparison(baseline_images=['line_collection_dashes'], remove_text=True) def test_set_line_coll_dash_image(): fig = plt.figure()