Skip to content

Commit 798ace5

Browse files
gh-93951: In test_bdb.StateTestCase.test_skip, avoid including auxiliary importers. (GH-93962) (GH-94119)
Co-authored-by: Brett Cannon <brett@python.org> (cherry picked from commit c029b55) Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
1 parent 525ab8f commit 798ace5

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
@@ -1681,6 +1681,16 @@ def cleanup():
16811681
setattr(object_to_patch, attr_name, new_value)
16821682

16831683

1684+
@contextlib.contextmanager
1685+
def patch_list(orig):
1686+
"""Like unittest.mock.patch.dict, but for lists."""
1687+
try:
1688+
saved = orig[:]
1689+
yield
1690+
finally:
1691+
orig[:] = saved
1692+
1693+
16841694
def run_in_subinterp(code):
16851695
"""
16861696
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)