]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-45118: Fix regrtest second summary for re-run tests (GH-28183) (GH-28215)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Tue, 7 Sep 2021 17:21:19 +0000 (10:21 -0700)
committerGitHub <noreply@github.com>
Tue, 7 Sep 2021 17:21:19 +0000 (19:21 +0200)
Fix regrtest second summary when using -w/--verbose2 command line
option: lists re-run tests in the second test summary.
(cherry picked from commit c4ea45d7d2c02674db2fdb96c7eee89324d2dc64)

Co-authored-by: Victor Stinner <vstinner@python.org>
Lib/test/libregrtest/main.py

index 6daf68b64a39606b8e3a21c08b3ca176b70738c8..56458afd290bb26bfa7fc16554b910d81bb00d6f 100644 (file)
@@ -66,6 +66,7 @@ class Regrtest:
         self.resource_denieds = []
         self.environment_changed = []
         self.run_no_tests = []
+        self.need_rerun = []
         self.rerun = []
         self.first_result = None
         self.interrupted = False
@@ -116,7 +117,7 @@ class Regrtest:
         elif isinstance(result, Failed):
             if not rerun:
                 self.bad.append(test_name)
-                self.rerun.append(result)
+                self.need_rerun.append(result)
         elif isinstance(result, DidNotRun):
             self.run_no_tests.append(test_name)
         elif isinstance(result, Interrupted):
@@ -309,10 +310,12 @@ class Regrtest:
 
         self.log()
         self.log("Re-running failed tests in verbose mode")
-        rerun_list = self.rerun[:]
-        self.rerun = []
+        rerun_list = list(self.need_rerun)
+        self.need_rerun.clear()
         for result in rerun_list:
             test_name = result.name
+            self.rerun.append(test_name)
+
             errors = result.errors or []
             failures = result.failures or []
             error_names = [test_full_name.split(" ")[0] for (test_full_name, *_) in errors]
@@ -394,7 +397,7 @@ class Regrtest:
         if self.rerun:
             print()
             print("%s:" % count(len(self.rerun), "re-run test"))
-            printlist(r.name for r in self.rerun)
+            printlist(self.rerun)
 
         if self.run_no_tests:
             print()