Skip to content
19 changes: 19 additions & 0 deletions Lib/test/test_turtle.py
Original file line number Diff line number Diff line change
Expand Up @@ -480,6 +480,25 @@ def test_teleport(self):
tpen.teleport(-100, -100, fill_gap=fill_gap_value)
self.assertTrue(tpen.isdown())

def test_pensize_with_positive_numbers(self):
tpen = turtle.TPen()

tpen.pensize(42)
self.assertEqual(42, tpen.pensize())

def test_pensize_with_nonpositive_numbers(self):
tpen = turtle.TPen()

tpen.pensize(0)
self.assertEqual(0, tpen.pensize())

width = -1
msg = f"width argument must be a positive number. It was {width}."
with self.assertRaisesRegex(turtle.TurtleGraphicsError, re.escape(msg)):
tpen.pensize(width)

self.assertEqual(0, tpen.pensize())


class TestTurtleScreen(unittest.TestCase):
def test_save_raises_if_wrong_extension(self) -> None:
Expand Down
5 changes: 4 additions & 1 deletion Lib/turtle.py
Original file line number Diff line number Diff line change
Expand Up @@ -2141,7 +2141,10 @@ def pensize(self, width=None):
"""
if width is None:
return self._pensize
self.pen(pensize=width)
elif width < 0:
raise TurtleGraphicsError(f"width argument must be a positive number. It was {width}.")
else:
self.pen(pensize=width)


def penup(self):
Expand Down
Loading