Skip to content

Commit 613a899

Browse files
committed
gh-135272: Activate doctests on turtle module
1 parent 35e6138 commit 613a899

2 files changed

Lines changed: 206 additions & 36 deletions

File tree

Lib/test/test_turtle.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import doctest
12
import os
23
import pickle
34
import re
@@ -69,6 +70,62 @@ def patch_screen():
6970
)
7071

7172

73+
def setUp(test):
74+
try:
75+
turtle.mode('standard')
76+
turtle.reset()
77+
turtle.degrees()
78+
except turtle.Terminator:
79+
pass
80+
except:
81+
raise
82+
83+
# mock mainloop in order doenst be necessary the tester close the window
84+
# on mainloop() and exitonclick()
85+
turtle.TurtleScreenBase.mainloop = turtle.mainloop = lambda self: None
86+
87+
88+
def load_tests(loader, tests, ignore):
89+
tests.addTests(doctest.DocTestSuite(
90+
turtle,
91+
optionflags=doctest.ELLIPSIS|doctest.NORMALIZE_WHITESPACE,
92+
setUp=setUp,
93+
))
94+
return tests
95+
96+
"""
97+
finder = doctest.DocTestFinder()
98+
runner = doctest.DocTestRunner()
99+
100+
suite = unittest.TestSuite()
101+
102+
# Find doctests on specific methods (for debug propose mainly) - to be removed
103+
targets = turtle.Turtle.right, turtle.Turtle.reset, turtle.Turtle.radians,\
104+
turtle.Turtle.setheading, turtle.Turtle.setx, turtle.Turtle.sety,\
105+
turtle.Turtle.speed, turtle.Turtle.teleport, turtle.Turtle.towards,\
106+
turtle.Turtle.xcor, turtle.Turtle.ycor
107+
for target in targets:
108+
for test in finder.find(target):
109+
suite.addTest(doctest.DocTestCase(test,
110+
optionflags=doctest.ELLIPSIS|doctest.NORMALIZE_WHITESPACE,
111+
setUp=setUp,
112+
tearDown=tearDown))
113+
"""
114+
115+
""" review to activate it
116+
lib_tests = os.path.join(REPO_ROOT, 'Doc/library/turtle.rst')
117+
if os.path.exists(lib_tests):
118+
print('add lib_tests')
119+
tests.addTests(doctest.DocFileSuite(
120+
lib_tests,
121+
module_relative=False,
122+
optionflags=doctest.ELLIPSIS|doctest.NORMALIZE_WHITESPACE,
123+
setUp=setUp
124+
))
125+
"""
126+
return suite
127+
128+
72129
class TurtleConfigTest(unittest.TestCase):
73130

74131
def get_cfg_file(self, cfg_str):

0 commit comments

Comments
 (0)