diff options
Diffstat (limited to 'Lib/importlib/test/support.py')
-rw-r--r-- | Lib/importlib/test/support.py | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/Lib/importlib/test/support.py b/Lib/importlib/test/support.py index 3097811..1518d74 100644 --- a/Lib/importlib/test/support.py +++ b/Lib/importlib/test/support.py @@ -6,7 +6,6 @@ import imp import os.path from test.support import unlink import sys -from tempfile import gettempdir using___import__ = False @@ -28,14 +27,6 @@ def importlib_only(fxn): update_wrapper(inner, fxn) return inner -def writes_bytecode(fxn): - """Decorator that returns the function if writing bytecode is enabled, else - a stub function that accepts anything and simply returns None.""" - if sys.dont_write_bytecode: - return lambda *args, **kwargs: None - else: - return fxn - def case_insensitive_tests(class_): """Class decorator that nullifies tests that require a case-insensitive @@ -102,67 +93,6 @@ def import_state(**kwargs): setattr(sys, attr, value) -@contextmanager -def create_modules(*names): - """Temporarily create each named module with an attribute (named 'attr') - that contains the name passed into the context manager that caused the - creation of the module. - - All files are created in a temporary directory specified by - tempfile.gettempdir(). This directory is inserted at the beginning of - sys.path. When the context manager exits all created files (source and - bytecode) are explicitly deleted. - - No magic is performed when creating packages! This means that if you create - a module within a package you must also create the package's __init__ as - well. - - """ - source = 'attr = {0!r}' - created_paths = [] - mapping = {} - try: - temp_dir = gettempdir() - mapping['.root'] = temp_dir - import_names = set() - for name in names: - if not name.endswith('__init__'): - import_name = name - else: - import_name = name[:-len('.__init__')] - import_names.add(import_name) - if import_name in sys.modules: - del sys.modules[import_name] - name_parts = name.split('.') - file_path = temp_dir - for directory in name_parts[:-1]: - file_path = os.path.join(file_path, directory) - if not os.path.exists(file_path): - os.mkdir(file_path) - created_paths.append(file_path) - file_path = os.path.join(file_path, name_parts[-1] + '.py') - with open(file_path, 'w') as file: - file.write(source.format(name)) - created_paths.append(file_path) - mapping[name] = file_path - uncache_manager = uncache(*import_names) - uncache_manager.__enter__() - state_manager = import_state(path=[temp_dir]) - state_manager.__enter__() - yield mapping - finally: - state_manager.__exit__(None, None, None) - uncache_manager.__exit__(None, None, None) - # Reverse the order for path removal to unroll directory creation. - for path in reversed(created_paths): - if file_path.endswith('.py'): - unlink(path) - unlink(path + 'c') - unlink(path + 'o') - else: - os.rmdir(path) - - class mock_modules: """A mock importer/loader.""" @@ -221,13 +151,3 @@ def mock_path_hook(*entries, importer): raise ImportError return importer return hook - - -def bytecode_path(source_path): - for suffix, _, type_ in imp.get_suffixes(): - if type_ == imp.PY_COMPILED: - bc_suffix = suffix - break - else: - raise ValueError("no bytecode suffix is defined") - return os.path.splitext(source_path)[0] + bc_suffix |