diff options
author | Victor Stinner <vstinner@python.org> | 2023-09-25 14:21:01 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-25 14:21:01 (GMT) |
commit | 72fb39c9656f72d942c2fe8720fb9a183e438a8a (patch) | |
tree | f38d859db1cbad5ffd3fea58cf7898daa6d399c3 /Lib/test/test_regrtest.py | |
parent | 64ab9f7d5c7cbe5ef997c7d841151e0e71e7f582 (diff) | |
download | cpython-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.py | 13 |
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(""" |