mirror of https://github.com/python/cpython
gh-102251: Disable non-rerunnable test in test_import (#106013)
This commit is contained in:
parent
8ef0ee4ebc
commit
4849a80dd1
|
@ -107,6 +107,25 @@ def remove_files(name):
|
|||
rmtree('__pycache__')
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _ready_to_import(name=None, source=""):
|
||||
# sets up a temporary directory and removes it
|
||||
|
@ -1989,10 +2008,6 @@ class SinglephaseInitTests(unittest.TestCase):
|
|||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
if '-R' in sys.argv or '--huntrleaks' in sys.argv:
|
||||
# https://github.com/python/cpython/issues/102251
|
||||
raise unittest.SkipTest('unresolved refleaks (see gh-102251)')
|
||||
|
||||
spec = importlib.util.find_spec(cls.NAME)
|
||||
from importlib.machinery import ExtensionFileLoader
|
||||
cls.FILE = spec.origin
|
||||
|
@ -2502,6 +2517,7 @@ class SinglephaseInitTests(unittest.TestCase):
|
|||
# * m_copy was copied from interp2 (was from interp1)
|
||||
# * module's global state was updated, not reset
|
||||
|
||||
@no_rerun(reason="rerun not possible; module state is never cleared (see gh-102251)")
|
||||
@requires_subinterpreters
|
||||
def test_basic_multiple_interpreters_deleted_no_reset(self):
|
||||
# without resetting; already loaded in a deleted interpreter
|
||||
|
|
Loading…
Reference in New Issue