https://github.com/python/cpython/commit/2462807b702d9a71f0bd73a6618d4948491852a0
commit: 2462807b702d9a71f0bd73a6618d4948491852a0
branch: main
author: Jan-Eric Nitschke <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2025-09-25T16:46:12+03:00
summary:
gh-138772: Add tests for Turtle.dot() signature (GH-138773)
files:
M Lib/test/test_turtle.py
diff --git a/Lib/test/test_turtle.py b/Lib/test/test_turtle.py
index d02cac284a909a..12d2eed874148c 100644
--- a/Lib/test/test_turtle.py
+++ b/Lib/test/test_turtle.py
@@ -60,12 +60,25 @@ def patch_screen():
We must patch the _Screen class itself instead of the _Screen
instance because instantiating it requires a display.
"""
+ # Create a mock screen that delegates color validation to the real
TurtleScreen methods
+ mock_screen = unittest.mock.MagicMock()
+ mock_screen.__class__ = turtle._Screen
+ mock_screen.mode.return_value = "standard"
+ mock_screen._colormode = 1.0
+
+ def mock_iscolorstring(color):
+ valid_colors = {'red', 'green', 'blue', 'black', 'white', 'yellow',
+ 'orange', 'purple', 'pink', 'brown', 'gray', 'grey',
+ 'cyan', 'magenta'}
+
+ return color in valid_colors or (isinstance(color, str) and
color.startswith('#'))
+
+ mock_screen._iscolorstring = mock_iscolorstring
+ mock_screen._colorstr = turtle._Screen._colorstr.__get__(mock_screen)
+
return unittest.mock.patch(
"turtle._Screen.__new__",
- **{
- "return_value.__class__": turtle._Screen,
- "return_value.mode.return_value": "standard",
- },
+ return_value=mock_screen
)
@@ -635,6 +648,28 @@ def test_poly_context_when_creating_poly(self):
self.assertTrue(self.turtle._creatingPoly)
self.assertFalse(self.turtle._creatingPoly)
+ def test_dot_signature(self):
+ self.turtle.dot()
+ self.turtle.dot(10)
+ self.turtle.dot(size=10)
+ self.turtle.dot((0, 0, 0))
+ self.turtle.dot(size=(0, 0, 0))
+ self.turtle.dot("blue")
+ self.turtle.dot("")
+ self.turtle.dot(size="blue")
+ self.turtle.dot(20, "blue")
+ self.turtle.dot(20, "blue")
+ self.turtle.dot(20, (0, 0, 0))
+ self.turtle.dot(20, 0, 0, 0)
+ with self.assertRaises(TypeError):
+ self.turtle.dot(color="blue")
+ self.assertRaises(turtle.TurtleGraphicsError, self.turtle.dot,
"_not_a_color_")
+ self.assertRaises(turtle.TurtleGraphicsError, self.turtle.dot, 0, (0,
0, 0, 0))
+ self.assertRaises(turtle.TurtleGraphicsError, self.turtle.dot, 0, 0,
0, 0, 0)
+ self.assertRaises(turtle.TurtleGraphicsError, self.turtle.dot, 0, (-1,
0, 0))
+ self.assertRaises(turtle.TurtleGraphicsError, self.turtle.dot, 0, -1,
0, 0)
+ self.assertRaises(turtle.TurtleGraphicsError, self.turtle.dot, 0, (0,
257, 0))
+ self.assertRaises(turtle.TurtleGraphicsError, self.turtle.dot, 0, 0,
257, 0)
class TestModuleLevel(unittest.TestCase):
def test_all_signatures(self):
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]