]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] gh-89392: Remove support of test_main() in libregrtest (GH-108876) (#108897)
authorSerhiy Storchaka <storchaka@gmail.com>
Tue, 5 Sep 2023 11:18:41 +0000 (14:18 +0300)
committerGitHub <noreply@github.com>
Tue, 5 Sep 2023 11:18:41 +0000 (11:18 +0000)
[3.12] gh-89392: Remove support of test_main() in libregrtest (GH-108876).
(cherry picked from commit 04a0830b00879efe057e3dfe75e9aa9c0caf1a26)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
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 6fa60697371b728a2ba6c689322ba6c5697988e8..2c30269fc9fd6d9da5230af8d668ddd5275837a2 100644 (file)
@@ -345,11 +345,10 @@ def _load_run_test(result: TestResult, ns: Namespace) -> None:
 
     the_module = importlib.import_module(abstest)
 
-    # If the test has a test_main, that will run the appropriate
-    # tests.  If not, use normal unittest test loading.
-    test_func = getattr(the_module, "test_main", None)
-    if test_func is None:
-        test_func = functools.partial(_test_module, the_module)
+    if hasattr(the_module, "test_main"):
+        # https://github.com/python/cpython/issues/89392
+        raise Exception(f"Module {result.test_name} defines test_main() which is no longer supported by regrtest")
+    test_func = functools.partial(_test_module, the_module)
 
     try:
         with save_env(ns, result.test_name):
index 14f5a962356aa39b780402a1ae4ead267fbb9d8a..68f71360d6914c32895d93c924ee1410684b0dc7 100644 (file)
@@ -1678,9 +1678,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)
 
@@ -1689,7 +1689,7 @@ class ArgsTestCase(BaseTestCase):
         self.check_executed_tests(output, [testname],
                                   failed=[testname],
                                   randomize=True,
-                                  stats=TestStats(3, 2, 0))
+                                  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.