[Python-checkins] gh-93951: In test_bdb.StateTestCase.test_skip, avoid including auxiliary importers. (GH-93962)

ambv webhook-mailer at python.org
Wed Jun 22 08:05:51 EDT 2022


https://github.com/python/cpython/commit/c029b552f39200977325d4351803bdd13ddccc4f
commit: c029b552f39200977325d4351803bdd13ddccc4f
branch: main
author: Jason R. Coombs <jaraco at jaraco.com>
committer: ambv <lukasz at langa.pl>
date: 2022-06-22T14:05:45+02:00
summary:

gh-93951: In test_bdb.StateTestCase.test_skip, avoid including auxiliary importers. (GH-93962)

Co-authored-by: Brett Cannon <brett at python.org>

files:
A Misc/NEWS.d/next/Tests/2022-06-17-15-20-09.gh-issue-93951.CW1Vv4.rst
M Lib/test/support/__init__.py
M Lib/test/test_bdb.py

diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index a875548018b99..c51a1f26f29a6 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -1768,6 +1768,16 @@ def cleanup():
     setattr(object_to_patch, attr_name, new_value)
 
 
+ at 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
diff --git a/Lib/test/test_bdb.py b/Lib/test/test_bdb.py
index 6ec59531fa88f..87a5ac308a12d 100644
--- a/Lib/test/test_bdb.py
+++ b/Lib/test/test_bdb.py
@@ -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
@@ -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
diff --git a/Misc/NEWS.d/next/Tests/2022-06-17-15-20-09.gh-issue-93951.CW1Vv4.rst b/Misc/NEWS.d/next/Tests/2022-06-17-15-20-09.gh-issue-93951.CW1Vv4.rst
new file mode 100644
index 0000000000000..b627466b4b221
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2022-06-17-15-20-09.gh-issue-93951.CW1Vv4.rst
@@ -0,0 +1 @@
+In test_bdb.StateTestCase.test_skip, avoid including auxiliary importers.



More information about the Python-checkins mailing list