[Python-checkins] bpo-45229: Make doctest tests discoverable (GH-28986) (GH-29096)

ambv webhook-mailer at python.org
Wed Oct 20 12:52:46 EDT 2021


https://github.com/python/cpython/commit/919268316582c6ac47960c2e5dd2ee1682371494
commit: 919268316582c6ac47960c2e5dd2ee1682371494
branch: 3.9
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: ambv <lukasz at langa.pl>
date: 2021-10-20T18:52:41+02:00
summary:

bpo-45229: Make doctest tests discoverable (GH-28986) (GH-29096)

(cherry picked from commit 8d6740f489fca67a44de165d29d9e0ad86285779)

Co-authored-by: Serhiy Storchaka <storchaka at gmail.com>

files:
M Lib/test/test_doctest.py
M Lib/test/test_doctest2.py

diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py
index 3efe5dafc20ad..af5513c631777 100644
--- a/Lib/test/test_doctest.py
+++ b/Lib/test/test_doctest.py
@@ -3091,20 +3091,11 @@ def test_no_trailing_whitespace_stripping():
     patches that contain trailing whitespace. More info on Issue 24746.
     """
 
-######################################################################
-## Main
-######################################################################
-
-def test_main():
-    # Check the doctest cases in doctest itself:
-    ret = support.run_doctest(doctest, verbosity=True)
 
-    # Check the doctest cases defined here:
-    from test import test_doctest
-    support.run_doctest(test_doctest, verbosity=True)
-
-    # Run unittests
-    support.run_unittest(__name__)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite(doctest))
+    tests.addTest(doctest.DocTestSuite())
+    return tests
 
 
 def test_coverage(coverdir):
@@ -3117,8 +3108,9 @@ def test_coverage(coverdir):
     r.write_results(show_missing=True, summary=True,
                     coverdir=coverdir)
 
+
 if __name__ == '__main__':
     if '-c' in sys.argv:
         test_coverage('/tmp/doctest.cover')
     else:
-        test_main()
+        unittest.main()
diff --git a/Lib/test/test_doctest2.py b/Lib/test/test_doctest2.py
index 347a143641071..ab8a0696736e2 100644
--- a/Lib/test/test_doctest2.py
+++ b/Lib/test/test_doctest2.py
@@ -13,7 +13,6 @@
 
 import sys
 import unittest
-from test import support
 if sys.flags.optimize >= 2:
     raise unittest.SkipTest("Cannot test docstrings with -O2")
 
@@ -107,17 +106,21 @@ def clsm(cls, val):
         """
         return val
 
-def test_main():
-    from test import test_doctest2
-    EXPECTED = 19
-    f, t = support.run_doctest(test_doctest2)
-    if t != EXPECTED:
-        raise support.TestFailed("expected %d tests to run, not %d" %
-                                      (EXPECTED, t))
+
+class Test(unittest.TestCase):
+    def test_testmod(self):
+        import doctest, sys
+        EXPECTED = 19
+        f, t = doctest.testmod(sys.modules[__name__])
+        if f:
+            self.fail("%d of %d doctests failed" % (f, t))
+        if t != EXPECTED:
+            self.fail("expected %d tests to run, not %d" % (EXPECTED, t))
+
 
 # Pollute the namespace with a bunch of imported functions and classes,
 # to make sure they don't get tested.
 from doctest import *
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()



More information about the Python-checkins mailing list