Skip to content

Commit 9192683

Browse files
bpo-45229: Make doctest tests discoverable (GH-28986) (GH-29096)
(cherry picked from commit 8d6740f) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
1 parent 88f4ec8 commit 9192683

File tree

2 files changed

+18
-23
lines changed

2 files changed

+18
-23
lines changed

Diff for: Lib/test/test_doctest.py

+6-14
Original file line numberDiff line numberDiff line change
@@ -3091,20 +3091,11 @@ def test_no_trailing_whitespace_stripping():
30913091
patches that contain trailing whitespace. More info on Issue 24746.
30923092
"""
30933093

3094-
######################################################################
3095-
## Main
3096-
######################################################################
3097-
3098-
def test_main():
3099-
# Check the doctest cases in doctest itself:
3100-
ret = support.run_doctest(doctest, verbosity=True)
31013094

3102-
# Check the doctest cases defined here:
3103-
from test import test_doctest
3104-
support.run_doctest(test_doctest, verbosity=True)
3105-
3106-
# Run unittests
3107-
support.run_unittest(__name__)
3095+
def load_tests(loader, tests, pattern):
3096+
tests.addTest(doctest.DocTestSuite(doctest))
3097+
tests.addTest(doctest.DocTestSuite())
3098+
return tests
31083099

31093100

31103101
def test_coverage(coverdir):
@@ -3117,8 +3108,9 @@ def test_coverage(coverdir):
31173108
r.write_results(show_missing=True, summary=True,
31183109
coverdir=coverdir)
31193110

3111+
31203112
if __name__ == '__main__':
31213113
if '-c' in sys.argv:
31223114
test_coverage('/tmp/doctest.cover')
31233115
else:
3124-
test_main()
3116+
unittest.main()

Diff for: Lib/test/test_doctest2.py

+12-9
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
import sys
1515
import unittest
16-
from test import support
1716
if sys.flags.optimize >= 2:
1817
raise unittest.SkipTest("Cannot test docstrings with -O2")
1918

@@ -107,17 +106,21 @@ def clsm(cls, val):
107106
"""
108107
return val
109108

110-
def test_main():
111-
from test import test_doctest2
112-
EXPECTED = 19
113-
f, t = support.run_doctest(test_doctest2)
114-
if t != EXPECTED:
115-
raise support.TestFailed("expected %d tests to run, not %d" %
116-
(EXPECTED, t))
109+
110+
class Test(unittest.TestCase):
111+
def test_testmod(self):
112+
import doctest, sys
113+
EXPECTED = 19
114+
f, t = doctest.testmod(sys.modules[__name__])
115+
if f:
116+
self.fail("%d of %d doctests failed" % (f, t))
117+
if t != EXPECTED:
118+
self.fail("expected %d tests to run, not %d" % (EXPECTED, t))
119+
117120

118121
# Pollute the namespace with a bunch of imported functions and classes,
119122
# to make sure they don't get tested.
120123
from doctest import *
121124

122125
if __name__ == '__main__':
123-
test_main()
126+
unittest.main()

0 commit comments

Comments
 (0)