Refactor: move `no_rerun` from `test_import` and `datetimetester` to `test.support`
Feature or enhancement
It is defined here:
| def no_rerun(reason): | |
| """Skip rerunning for a particular test. | |
| WARNING: Use this decorator with care; skipping rerunning makes it | |
| impossible to find reference leaks. Provide a clear reason for skipping the | |
| test using the 'reason' parameter. | |
| """ | |
| def deco(func): | |
| _has_run = False | |
| def wrapper(self): | |
| nonlocal _has_run | |
| if _has_run: | |
| self.skipTest(reason) | |
| func(self) | |
| _has_run = True | |
| return wrapper | |
| return deco |
and here:
| # This is copied from test_import/__init__.py. | |
| # XXX Move it to support/__init__.py. | |
| def no_rerun(reason): | |
| """Skip rerunning for a particular test. | |
| WARNING: Use this decorator with care; skipping rerunning makes it | |
| impossible to find reference leaks. Provide a clear reason for skipping the | |
| test using the 'reason' parameter. | |
| """ | |
| def deco(func): | |
| _has_run = False | |
| def wrapper(self): | |
| nonlocal _has_run | |
| if _has_run: | |
| self.skipTest(reason) | |
| func(self) | |
| _has_run = True | |
| return wrapper | |
| return deco |
Introduced in #119373