]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-89392: Remove support of test_main() in libregrtest (GH-108876)
authorSerhiy Storchaka <storchaka@gmail.com>
Tue, 5 Sep 2023 05:36:43 +0000 (08:36 +0300)
committerGitHub <noreply@github.com>
Tue, 5 Sep 2023 05:36:43 +0000 (08:36 +0300)
Lib/test/libregrtest/runtest.py
Lib/test/test_regrtest.py
Misc/NEWS.d/next/Tests/2023-09-04-15-18-14.gh-issue-89392.8A4T5p.rst [new file with mode: 0644]

index 6e3fab1a88318f79ebffe30c63eb9009123518e9..9cb71fbfb1d178d8395704b7f76a99f380a179a8 100644 (file)
@@ -440,14 +440,11 @@ def _load_run_test(result: TestResult, ns: Namespace) -> None:
 
     test_mod = importlib.import_module(module_name)
 
-    # If the test has a test_main, that will run the appropriate
-    # tests.  If not, use normal unittest test runner.
-    test_main = getattr(test_mod, "test_main", None)
-    if test_main is not None:
-        test_func = test_main
-    else:
-        def test_func():
-            return run_unittest(test_mod)
+    if hasattr(test_mod, "test_main"):
+        # https://github.com/python/cpython/issues/89392
+        raise Exception("Module {result.test_name} defines test_main() which is no longer supported by regrtest")
+    def test_func():
+        return run_unittest(test_mod)
 
     try:
         with save_env(ns, result.test_name):
index c5fb3dc9a11950783643a8bd9af9eb442605968b..aff5404408f8d03271655c894643c7bb8f3c32a3 100644 (file)
@@ -1803,9 +1803,9 @@ class ArgsTestCase(BaseTestCase):
                 7948648
                 """
 
-            def test_main():
-                testmod = sys.modules[__name__]
-                return support.run_doctest(testmod)
+            def load_tests(loader, tests, pattern):
+                tests.addTest(doctest.DocTestSuite())
+                return tests
         ''')
         testname = self.create_test(code=code)
 
@@ -1814,7 +1814,7 @@ class ArgsTestCase(BaseTestCase):
         self.check_executed_tests(output, [testname],
                                   failed=[testname],
                                   randomize=True,
-                                  stats=TestStats(4, 2, 1))
+                                  stats=TestStats(1, 1, 0))
 
 
 class TestUtils(unittest.TestCase):
diff --git a/Misc/NEWS.d/next/Tests/2023-09-04-15-18-14.gh-issue-89392.8A4T5p.rst b/Misc/NEWS.d/next/Tests/2023-09-04-15-18-14.gh-issue-89392.8A4T5p.rst
new file mode 100644 (file)
index 0000000..e1dea8e
--- /dev/null
@@ -0,0 +1,2 @@
+Removed support of ``test_main()`` function in tests. They now always use
+normal unittest test runner.