summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_regrtest.py
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-09-25 14:21:01 (GMT)
committerGitHub <noreply@github.com>2023-09-25 14:21:01 (GMT)
commit72fb39c9656f72d942c2fe8720fb9a183e438a8a (patch)
treef38d859db1cbad5ffd3fea58cf7898daa6d399c3 /Lib/test/test_regrtest.py
parent64ab9f7d5c7cbe5ef997c7d841151e0e71e7f582 (diff)
downloadcpython-72fb39c9656f72d942c2fe8720fb9a183e438a8a.zip
cpython-72fb39c9656f72d942c2fe8720fb9a183e438a8a.tar.gz
cpython-72fb39c9656f72d942c2fe8720fb9a183e438a8a.tar.bz2
gh-109276: regrtest re-runs "env changed" tests (#109831)
When a test fails with "env changed" and --rerun option is used, the test is now re-run in verbose mode in a fresh process.
Diffstat (limited to 'Lib/test/test_regrtest.py')
-rw-r--r--Lib/test/test_regrtest.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
index 4100c98..4b819cb 100644
--- a/Lib/test/test_regrtest.py
+++ b/Lib/test/test_regrtest.py
@@ -463,7 +463,7 @@ class BaseTestCase(unittest.TestCase):
randomize = True
rerun_failed = []
- if rerun is not None:
+ if rerun is not None and not env_changed:
failed = [rerun.name]
if not rerun.success:
rerun_failed.append(rerun.name)
@@ -591,7 +591,7 @@ class BaseTestCase(unittest.TestCase):
state = ', '.join(state)
if rerun is not None:
new_state = 'SUCCESS' if rerun.success else 'FAILURE'
- state = 'FAILURE then ' + new_state
+ state = f'{state} then {new_state}'
self.check_line(output, f'Result: {state}', full=True)
def parse_random_seed(self, output):
@@ -1229,6 +1229,15 @@ class ArgsTestCase(BaseTestCase):
self.check_executed_tests(output, [testname], env_changed=testname,
fail_env_changed=True, stats=1)
+ # rerun
+ output = self.run_tests("--rerun", testname)
+ self.check_executed_tests(output, [testname],
+ env_changed=testname,
+ rerun=Rerun(testname,
+ match=None,
+ success=True),
+ stats=2)
+
def test_rerun_fail(self):
# FAILURE then FAILURE
code = textwrap.dedent("""