]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-45229: Use doctest.DocTestSuite instead of run_doctest (GH-28468)
authorSerhiy Storchaka <storchaka@gmail.com>
Mon, 20 Sep 2021 08:36:57 +0000 (11:36 +0300)
committerGitHub <noreply@github.com>
Mon, 20 Sep 2021 08:36:57 +0000 (11:36 +0300)
Alo use load_tests() for adding tests.

17 files changed:
Lib/test/test_cmd.py
Lib/test/test_code.py
Lib/test/test_collections.py
Lib/test/test_deque.py
Lib/test/test_descrtut.py
Lib/test/test_extcall.py
Lib/test/test_generators.py
Lib/test/test_genexps.py
Lib/test/test_http_cookies.py
Lib/test/test_itertools.py
Lib/test/test_listcomps.py
Lib/test/test_metaclass.py
Lib/test/test_setcomps.py
Lib/test/test_syntax.py
Lib/test/test_unpack.py
Lib/test/test_unpack_ex.py
Lib/test/test_weakref.py

index 96e0c30da328cfc76694febb5f7639d9221564a4..5e8b17c6e871a1765f679dc9066f47ce6e8b1386 100644 (file)
@@ -6,6 +6,7 @@ Original by Michael Schneider
 
 import cmd
 import sys
+import doctest
 import unittest
 import io
 from test import support
@@ -219,10 +220,9 @@ class TestAlternateInput(unittest.TestCase):
              "(Cmd) *** Unknown syntax: EOF\n"))
 
 
-def test_main(verbose=None):
-    from test import test_cmd
-    support.run_doctest(test_cmd, verbose)
-    support.run_unittest(TestAlternateInput)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
 
 def test_coverage(coverdir):
     trace = support.import_module('trace')
@@ -239,4 +239,4 @@ if __name__ == "__main__":
     elif "-i" in sys.argv:
         samplecmdclass().cmdloop()
     else:
-        test_main()
+        unittest.main()
index 64fd10da1ef2146aed8a75db925ad39e2b97efce..0d46258d0c37153591bb24bcfdfe74c285199ead 100644 (file)
@@ -128,6 +128,7 @@ consts: ('None',)
 import inspect
 import sys
 import threading
+import doctest
 import unittest
 import textwrap
 import weakref
@@ -136,7 +137,7 @@ try:
     import ctypes
 except ImportError:
     ctypes = None
-from test.support import (run_doctest, run_unittest, cpython_only,
+from test.support import (cpython_only,
                           check_impl_detail, requires_debug_ranges,
                           gc_collect)
 from test.support.script_helper import assert_python_ok
@@ -609,13 +610,10 @@ if check_impl_detail(cpython=True) and ctypes is not None:
             self.assertEqual(LAST_FREED, 500)
 
 
-def test_main(verbose=None):
-    from test import test_code
-    run_doctest(test_code, verbose)
-    tests = [CodeTest, CodeConstsTest, CodeWeakRefTest]
-    if check_impl_detail(cpython=True) and ctypes is not None:
-        tests.append(CoExtra)
-    run_unittest(*tests)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
+
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 1f659d7d604e31d18b8b14ec2a42e21a68da2be3..b9be4c03142b6d39cfcaba73c19babf7c9ef2b13 100644 (file)
@@ -2351,19 +2351,10 @@ class TestCounter(unittest.TestCase):
         self.assertFalse(Counter(a=2, b=1, c=0) > Counter('aab'))
 
 
-################################################################################
-### Run tests
-################################################################################
-
-def test_main(verbose=None):
-    NamedTupleDocs = doctest.DocTestSuite(module=collections)
-    test_classes = [TestNamedTuple, NamedTupleDocs, TestOneTrickPonyABCs,
-                    TestCollectionABCs, TestCounter, TestChainMap,
-                    TestUserObjects,
-                    ]
-    support.run_unittest(*test_classes)
-    support.run_doctest(collections, verbose)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite(collections))
+    return tests
 
 
 if __name__ == "__main__":
-    test_main(verbose=True)
+    unittest.main()
index 20cfc88b160318ae23427f3723cf4abd04b12e85..0be3feca01049e563ec81d0dbe9ee7db8a2c535d 100644 (file)
@@ -1,4 +1,5 @@
 from collections import deque
+import doctest
 import unittest
 from test import support, seq_tests
 import gc
 
 __test__ = {'libreftest' : libreftest}
 
-def test_main(verbose=None):
-    import sys
-    test_classes = (
-        TestBasic,
-        TestVariousIteratorArgs,
-        TestSubclass,
-        TestSubclassWithKwargs,
-        TestSequence,
-    )
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
 
-    support.run_unittest(*test_classes)
-
-    # verify reference counting
-    if verbose and hasattr(sys, "gettotalrefcount"):
-        import gc
-        counts = [None] * 5
-        for i in range(len(counts)):
-            support.run_unittest(*test_classes)
-            gc.collect()
-            counts[i] = sys.gettotalrefcount()
-        print(counts)
-
-    # doctests
-    from test import test_deque
-    support.run_doctest(test_deque, verbose)
 
 if __name__ == "__main__":
-    test_main(verbose=True)
+    unittest.main()
index 8e25f58d7aa20ef76509d3605bc95a98ab6788e4..2af683e707ca8967a6569ccf061753d4ce63e7e0 100644 (file)
@@ -10,6 +10,9 @@
 
 from test.support import sortdict
 import pprint
+import doctest
+import unittest
+
 
 class defaultdict(dict):
     def __init__(self, default=None):
@@ -469,19 +472,10 @@ __test__ = {"tut1": test_1,
             "tut7": test_7,
             "tut8": test_8}
 
-# Magic test name that regrtest.py invokes *after* importing this module.
-# This worms around a bootstrap problem.
-# Note that doctest and regrtest both look in sys.argv for a "-v" argument,
-# so this works as expected in both ways of running regrtest.
-def test_main(verbose=None):
-    # Obscure:  import this module as test.test_descrtut instead of as
-    # plain test_descrtut because the name of this module works its way
-    # into the doctest examples, and unless the full test.test_descrtut
-    # business is used the name can change depending on how the test is
-    # invoked.
-    from test import support, test_descrtut
-    support.run_doctest(test_descrtut, verbose)
-
-# This part isn't needed for regrtest, but for running the test directly.
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
+
+
 if __name__ == "__main__":
-    test_main(1)
+    unittest.main()
index 4205ca82222f274c5238217fa30aab2204c28e88..13265ea0d8ce85063f097ac0e7dfc57867acd2cf 100644 (file)
@@ -520,11 +520,14 @@ Same with keyword only args:
 
 """
 
-import sys
+import doctest
+import unittest
 from test import support
 
-def test_main():
-    support.run_doctest(sys.modules[__name__], True)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
+
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index d14c757c7b6e435aa1c300a1ea91f72ab2b1cd7f..433204b09fee65af0486588372726e74a2c6f1b9 100644 (file)
@@ -2,6 +2,7 @@ import copy
 import gc
 import pickle
 import sys
+import doctest
 import unittest
 import weakref
 import inspect
@@ -2371,15 +2372,10 @@ __test__ = {"tut":      tutorial_tests,
             "refleaks": refleaks_tests,
             }
 
-# Magic test name that regrtest.py invokes *after* importing this module.
-# This worms around a bootstrap problem.
-# Note that doctest and regrtest both look in sys.argv for a "-v" argument,
-# so this works as expected in both ways of running regrtest.
-def test_main(verbose=None):
-    from test import support, test_generators
-    support.run_unittest(__name__)
-    support.run_doctest(test_generators, verbose)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
+
 
-# This part isn't needed for regrtest, but for running the test directly.
 if __name__ == "__main__":
-    test_main(1)
+    unittest.main()
index 70fe2bba3a698230181e416f32e845be95c42c84..4f2d3cdcc7943eaebe7698ca556164a941142019 100644 (file)
@@ -1,3 +1,8 @@
+import sys
+import doctest
+import unittest
+
+
 doctests = """
 
 Test simple loop with conditional
@@ -274,28 +279,16 @@ Verify that genexps are weakly referencable
 
 """
 
-import sys
-
 # Trace function can throw off the tuple reuse test.
 if hasattr(sys, 'gettrace') and sys.gettrace():
     __test__ = {}
 else:
     __test__ = {'doctests' : doctests}
 
-def test_main(verbose=None):
-    from test import support
-    from test import test_genexps
-    support.run_doctest(test_genexps, verbose)
-
-    # verify reference counting
-    if verbose and hasattr(sys, "gettotalrefcount"):
-        import gc
-        counts = [None] * 5
-        for i in range(len(counts)):
-            support.run_doctest(test_genexps, verbose)
-            gc.collect()
-            counts[i] = sys.gettotalrefcount()
-        print(counts)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
+
 
 if __name__ == "__main__":
-    test_main(verbose=True)
+    unittest.main()
index 6072c7e15e92be51c389a31fbea8bcab0d75ac3f..925c8697f60de6b3bd75d33f05dd8209dc18284c 100644 (file)
@@ -1,8 +1,8 @@
 # Simple test suite for http/cookies.py
 
 import copy
-from test.support import run_unittest, run_doctest
 import unittest
+import doctest
 from http import cookies
 import pickle
 
@@ -479,9 +479,11 @@ class MorselTests(unittest.TestCase):
                 r'Set-Cookie: key=coded_val; '
                 r'expires=\w+, \d+ \w+ \d+ \d+:\d+:\d+ \w+')
 
-def test_main():
-    run_unittest(CookieTests, MorselTests)
-    run_doctest(cookies)
+
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite(cookies))
+    return tests
+
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 4e1dd0255086b52d8d50530f5daf0a547e883357..808c32f7dd7ab397e31a0c3aee8540a4705aa62e 100644 (file)
@@ -1,3 +1,4 @@
+import doctest
 import unittest
 from test import support
 from itertools import *
@@ -2690,26 +2691,10 @@ True
 
 __test__ = {'libreftest' : libreftest}
 
-def test_main(verbose=None):
-    test_classes = (TestBasicOps, TestVariousIteratorArgs, TestGC,
-                    RegressionTests, LengthTransparency,
-                    SubclassWithKwargsTest, TestExamples,
-                    TestPurePythonRoughEquivalents,
-                    SizeofTest)
-    support.run_unittest(*test_classes)
-
-    # verify reference counting
-    if verbose and hasattr(sys, "gettotalrefcount"):
-        import gc
-        counts = [None] * 5
-        for i in range(len(counts)):
-            support.run_unittest(*test_classes)
-            gc.collect()
-            counts[i] = sys.gettotalrefcount()
-        print(counts)
-
-    # doctest the examples in the library reference
-    support.run_doctest(sys.modules[__name__], verbose)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
+
 
 if __name__ == "__main__":
-    test_main(verbose=True)
+    unittest.main()
index 62b3319ad936d7127cc970da61f73d208e5de7e5..91bf2547edc4aecd9de7e16b4e627fd5de565e00 100644 (file)
@@ -1,3 +1,7 @@
+import doctest
+import unittest
+
+
 doctests = """
 ########### Tests borrowed from or inspired by test_genexps.py ############
 
@@ -144,21 +148,10 @@ We also repeat each of the above scoping tests inside a function
 
 __test__ = {'doctests' : doctests}
 
-def test_main(verbose=None):
-    import sys
-    from test import support
-    from test import test_listcomps
-    support.run_doctest(test_listcomps, verbose)
-
-    # verify reference counting
-    if verbose and hasattr(sys, "gettotalrefcount"):
-        import gc
-        counts = [None] * 5
-        for i in range(len(counts)):
-            support.run_doctest(test_listcomps, verbose)
-            gc.collect()
-            counts[i] = sys.gettotalrefcount()
-        print(counts)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
+
 
 if __name__ == "__main__":
-    test_main(verbose=True)
+    unittest.main()
index 6edd899b0d21328655263fb0450812ef6bc13560..36e8ab4cda3dad2e8caca1d469c940d63430d93f 100644 (file)
@@ -1,3 +1,7 @@
+import doctest
+import unittest
+
+
 doctests = """
 
 Basic class construction.
@@ -256,10 +260,10 @@ if hasattr(sys, 'gettrace') and sys.gettrace():
 else:
     __test__ = {'doctests' : doctests}
 
-def test_main(verbose=False):
-    from test import support
-    from test import test_metaclass
-    support.run_doctest(test_metaclass, verbose)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
+
 
 if __name__ == "__main__":
-    test_main(verbose=True)
+    unittest.main()
index ecc4fffec0d8492272342dde19fd0de764eeecfb..976fa885bd8ef9320eb4b1b6621129ad7ef90fa6 100644 (file)
@@ -1,3 +1,7 @@
+import doctest
+import unittest
+
+
 doctests = """
 ########### Tests mostly copied from test_listcomps.py ############
 
@@ -147,21 +151,10 @@ We also repeat each of the above scoping tests inside a function
 
 __test__ = {'doctests' : doctests}
 
-def test_main(verbose=None):
-    import sys
-    from test import support
-    from test import test_setcomps
-    support.run_doctest(test_setcomps, verbose)
-
-    # verify reference counting
-    if verbose and hasattr(sys, "gettotalrefcount"):
-        import gc
-        counts = [None] * 5
-        for i in range(len(counts)):
-            support.run_doctest(test_setcomps, verbose)
-            gc.collect()
-            counts[i] = sys.gettotalrefcount()
-        print(counts)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
+
 
 if __name__ == "__main__":
-    test_main(verbose=True)
+    unittest.main()
index be8be898d0196264923d45e73115cf09a9a13259..aa86d0cd1d4801e5ac1ccb430eb058931a4cd7d4 100644 (file)
@@ -1266,6 +1266,7 @@ Corner-cases that used to crash:
 """
 
 import re
+import doctest
 import unittest
 
 from test import support
@@ -1554,10 +1555,10 @@ while 1:
         self._check_error(source, "too many statically nested blocks")
 
 
-def test_main():
-    support.run_unittest(SyntaxTestCase)
-    from test import test_syntax
-    support.run_doctest(test_syntax, verbosity=True)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
+
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 1c0c523d6858366bdefdbe843fecd5f20c7e3184..472c8343eb243332d82db54eac321dcf0f165a71 100644 (file)
@@ -1,3 +1,7 @@
+import doctest
+import unittest
+
+
 doctests = """
 
 Unpack tuple
@@ -142,10 +146,10 @@ Unpacking to an empty iterable should raise ValueError
 
 __test__ = {'doctests' : doctests}
 
-def test_main(verbose=False):
-    from test import support
-    from test import test_unpack
-    support.run_doctest(test_unpack, verbose)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
+
 
 if __name__ == "__main__":
-    test_main(verbose=True)
+    unittest.main()
index bd79421e6e2b3725e09fbcd3f50e616e252bdcdd..c201d08f61b8cd85f28aa40e0f199fe98d6dbf8b 100644 (file)
@@ -1,5 +1,9 @@
 # Tests for extended unpacking, starred expressions.
 
+import doctest
+import unittest
+
+
 doctests = """
 
 Unpack tuple
@@ -392,10 +396,10 @@ Some size constraints (all fail.)
 
 __test__ = {'doctests' : doctests}
 
-def test_main(verbose=False):
-    from test import support
-    from test import test_unpack_ex
-    support.run_doctest(test_unpack_ex, verbose)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
+
 
 if __name__ == "__main__":
-    test_main(verbose=True)
+    unittest.main()
index 5a3e59c3e9ef1599cb4ee3fcb5606152abbc742d..3bdc86d6923e02ed4689e68f7f69b619abf0d8fe 100644 (file)
@@ -1,5 +1,6 @@
 import gc
 import sys
+import doctest
 import unittest
 import collections
 import weakref
@@ -2233,18 +2234,10 @@ OK
 
 __test__ = {'libreftest' : libreftest}
 
-def test_main():
-    support.run_unittest(
-        ReferencesTestCase,
-        WeakMethodTestCase,
-        MappingTestCase,
-        WeakValueDictionaryTestCase,
-        WeakKeyDictionaryTestCase,
-        SubclassableWeakrefTestCase,
-        FinalizeTestCase,
-        )
-    support.run_doctest(sys.modules[__name__])
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
 
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()