diff options
Diffstat (limited to 'Lib/test/test_importlib/import_/util.py')
-rw-r--r-- | Lib/test/test_importlib/import_/util.py | 28 |
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 |