summaryrefslogtreecommitdiff
path: root/Lib/test/test_importlib/import_/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_importlib/import_/util.py')
-rw-r--r--Lib/test/test_importlib/import_/util.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/Lib/test/test_importlib/import_/util.py b/Lib/test/test_importlib/import_/util.py
new file mode 100644
index 0000000000..86ac065e64
--- /dev/null
+++ b/Lib/test/test_importlib/import_/util.py
@@ -0,0 +1,28 @@
+import functools
+import importlib
+import unittest
+
+
+using___import__ = False
+
+
+def import_(*args, **kwargs):
+ """Delegate to allow for injecting different implementations of import."""
+ if using___import__:
+ return __import__(*args, **kwargs)
+ else:
+ return importlib.__import__(*args, **kwargs)
+
+
+def importlib_only(fxn):
+ """Decorator to skip a test if using __builtins__.__import__."""
+ return unittest.skipIf(using___import__, "importlib-specific test")(fxn)
+
+
+def mock_path_hook(*entries, importer):
+ """A mock sys.path_hooks entry."""
+ def hook(entry):
+ if entry not in entries:
+ raise ImportError
+ return importer
+ return hook