Skip to content

Commit c029b55

Browse files
jaracobrettcannon
andauthored
gh-93951: In test_bdb.StateTestCase.test_skip, avoid including auxiliary importers. (GH-93962)
Co-authored-by: Brett Cannon <brett@python.org>
1 parent ca308c1 commit c029b55

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

Lib/test/support/__init__.py

+10
Original file line numberDiff line numberDiff line change
@@ -1768,6 +1768,16 @@ def cleanup():
17681768
setattr(object_to_patch, attr_name, new_value)
17691769

17701770

1771+
@contextlib.contextmanager
1772+
def patch_list(orig):
1773+
"""Like unittest.mock.patch.dict, but for lists."""
1774+
try:
1775+
saved = orig[:]
1776+
yield
1777+
finally:
1778+
orig[:] = saved
1779+
1780+
17711781
def run_in_subinterp(code):
17721782
"""
17731783
Run code in a subinterpreter. Raise unittest.SkipTest if the tracemalloc

Lib/test/test_bdb.py

+10
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
from itertools import islice, repeat
6060
from test.support import import_helper
6161
from test.support import os_helper
62+
from test.support import patch_list
6263

6364

6465
class BdbException(Exception): pass
@@ -713,9 +714,18 @@ def test_until_in_caller_frame(self):
713714
with TracerRun(self) as tracer:
714715
tracer.runcall(tfunc_main)
715716

717+
@patch_list(sys.meta_path)
716718
def test_skip(self):
717719
# Check that tracing is skipped over the import statement in
718720
# 'tfunc_import()'.
721+
722+
# Remove all but the standard importers.
723+
sys.meta_path[:] = (
724+
item
725+
for item in sys.meta_path
726+
if item.__module__.startswith('_frozen_importlib')
727+
)
728+
719729
code = """
720730
def main():
721731
lno = 3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
In test_bdb.StateTestCase.test_skip, avoid including auxiliary importers.

0 commit comments

Comments
 (0)