Skip to content

Commit

Permalink
gh-93951: In test_bdb.StateTestCase.test_skip, avoid including auxili…
Browse files Browse the repository at this point in the history
…ary importers. (GH-93962) (GH-94118)

Co-authored-by: Brett Cannon <[email protected]>
(cherry picked from commit c029b55)

Co-authored-by: Jason R. Coombs <[email protected]>
  • Loading branch information
miss-islington and jaraco committed Jun 22, 2022
1 parent 6c18bd5 commit e631d98
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 0 deletions.
10 changes: 10 additions & 0 deletions Lib/test/support/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -1773,6 +1773,16 @@ def cleanup():
setattr(object_to_patch, attr_name, new_value)


@contextlib.contextmanager
def patch_list(orig):
"""Like unittest.mock.patch.dict, but for lists."""
try:
saved = orig[:]
yield
finally:
orig[:] = saved


def run_in_subinterp(code):
"""
Run code in a subinterpreter. Raise unittest.SkipTest if the tracemalloc
Expand Down
10 changes: 10 additions & 0 deletions Lib/test/test_bdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
from itertools import islice, repeat
from test.support import import_helper
from test.support import os_helper
from test.support import patch_list


class BdbException(Exception): pass
Expand Down Expand Up @@ -713,9 +714,18 @@ def test_until_in_caller_frame(self):
with TracerRun(self) as tracer:
tracer.runcall(tfunc_main)

@patch_list(sys.meta_path)
def test_skip(self):
# Check that tracing is skipped over the import statement in
# 'tfunc_import()'.

# Remove all but the standard importers.
sys.meta_path[:] = (
item
for item in sys.meta_path
if item.__module__.startswith('_frozen_importlib')
)

code = """
def main():
lno = 3
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
In test_bdb.StateTestCase.test_skip, avoid including auxiliary importers.

0 comments on commit e631d98

Please sign in to comment.