@@ -60,12 +60,25 @@ def patch_screen():
6060    We must patch the _Screen class itself instead of the _Screen 
6161    instance because instantiating it requires a display. 
6262    """ 
63+     # Create a mock screen that delegates color validation to the real TurtleScreen methods 
64+     mock_screen  =  unittest .mock .MagicMock ()
65+     mock_screen .__class__  =  turtle ._Screen 
66+     mock_screen .mode .return_value  =  "standard" 
67+     mock_screen ._colormode  =  1.0 
68+ 
69+     def  mock_iscolorstring (color ):
70+         valid_colors  =  {'red' , 'green' , 'blue' , 'black' , 'white' , 'yellow' ,
71+                         'orange' , 'purple' , 'pink' , 'brown' , 'gray' , 'grey' ,
72+                         'cyan' , 'magenta' }
73+ 
74+         return  color  in  valid_colors  or  (isinstance (color , str ) and  color .startswith ('#' ))
75+ 
76+     mock_screen ._iscolorstring  =  mock_iscolorstring 
77+     mock_screen ._colorstr  =  turtle ._Screen ._colorstr .__get__ (mock_screen )
78+ 
6379    return  unittest .mock .patch (
6480        "turtle._Screen.__new__" ,
65-         ** {
66-             "return_value.__class__" : turtle ._Screen ,
67-             "return_value.mode.return_value" : "standard" ,
68-         },
81+         return_value = mock_screen 
6982    )
7083
7184
@@ -635,6 +648,28 @@ def test_poly_context_when_creating_poly(self):
635648            self .assertTrue (self .turtle ._creatingPoly )
636649        self .assertFalse (self .turtle ._creatingPoly )
637650
651+     def  test_dot_signature (self ):
652+         self .turtle .dot ()
653+         self .turtle .dot (10 )
654+         self .turtle .dot (size = 10 )
655+         self .turtle .dot ((0 , 0 , 0 ))
656+         self .turtle .dot (size = (0 , 0 , 0 ))
657+         self .turtle .dot ("blue" )
658+         self .turtle .dot ("" )
659+         self .turtle .dot (size = "blue" )
660+         self .turtle .dot (20 , "blue" )
661+         self .turtle .dot (20 , "blue" )
662+         self .turtle .dot (20 , (0 , 0 , 0 ))
663+         self .turtle .dot (20 , 0 , 0 , 0 )
664+         with  self .assertRaises (TypeError ):
665+             self .turtle .dot (color = "blue" )
666+         self .assertRaises (turtle .TurtleGraphicsError , self .turtle .dot , "_not_a_color_" )
667+         self .assertRaises (turtle .TurtleGraphicsError , self .turtle .dot , 0 , (0 , 0 , 0 , 0 ))
668+         self .assertRaises (turtle .TurtleGraphicsError , self .turtle .dot , 0 , 0 , 0 , 0 , 0 )
669+         self .assertRaises (turtle .TurtleGraphicsError , self .turtle .dot , 0 , (- 1 , 0 , 0 ))
670+         self .assertRaises (turtle .TurtleGraphicsError , self .turtle .dot , 0 , - 1 , 0 , 0 )
671+         self .assertRaises (turtle .TurtleGraphicsError , self .turtle .dot , 0 , (0 , 257 , 0 ))
672+         self .assertRaises (turtle .TurtleGraphicsError , self .turtle .dot , 0 , 0 , 257 , 0 )
638673
639674class  TestModuleLevel (unittest .TestCase ):
640675    def  test_all_signatures (self ):
0 commit comments