Python builtins.__import__() Examples
The following are 30
code examples of builtins.__import__().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
builtins
, or try the search function
.
Example #1
Source File: __init__.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_file_to_source(self): # check if __file__ points to the source file where available source = TESTFN + ".py" with open(source, "w") as f: f.write("test = None\n") sys.path.insert(0, os.curdir) try: mod = __import__(TESTFN) self.assertTrue(mod.__file__.endswith('.py')) os.remove(source) del sys.modules[TESTFN] make_legacy_pyc(source) importlib.invalidate_caches() mod = __import__(TESTFN) base, ext = os.path.splitext(mod.__file__) self.assertEqual(ext, '.pyc') finally: del sys.path[0] remove_files(TESTFN) if TESTFN in sys.modules: del sys.modules[TESTFN]
Example #2
Source File: test_import.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_file_to_source(self): # check if __file__ points to the source file where available source = TESTFN + ".py" with open(source, "w") as f: f.write("test = None\n") sys.path.insert(0, os.curdir) try: mod = __import__(TESTFN) self.assertTrue(mod.__file__.endswith('.py')) os.remove(source) del sys.modules[TESTFN] make_legacy_pyc(source) importlib.invalidate_caches() mod = __import__(TESTFN) base, ext = os.path.splitext(mod.__file__) self.assertIn(ext, ('.pyc', '.pyo')) finally: del sys.path[0] remove_files(TESTFN) if TESTFN in sys.modules: del sys.modules[TESTFN]
Example #3
Source File: reloader.py From UnitTesting with MIT License | 6 votes |
def importing_fromlist_aggresively(modules): orig___import__ = builtins.__import__ @functools.wraps(orig___import__) def __import__(name, globals=None, locals=None, fromlist=(), level=0): module = orig___import__(name, globals, locals, fromlist, level) if fromlist and module.__name__ in modules: if '*' in fromlist: fromlist = list(fromlist) fromlist.remove('*') fromlist.extend(getattr(module, '__all__', [])) for x in fromlist: if isinstance(getattr(module, x, None), types.ModuleType): from_name = '{}.{}'.format(module.__name__, x) if from_name in modules: importlib.import_module(from_name) return module builtins.__import__ = __import__ try: yield finally: builtins.__import__ = orig___import__
Example #4
Source File: test_import.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_failing_import_sticks(self): source = TESTFN + ".py" with open(source, "w") as f: print("a = 1/0", file=f) # New in 2.4, we shouldn't be able to import that no matter how often # we try. sys.path.insert(0, os.curdir) importlib.invalidate_caches() if TESTFN in sys.modules: del sys.modules[TESTFN] try: for i in [1, 2, 3]: self.assertRaises(ZeroDivisionError, __import__, TESTFN) self.assertNotIn(TESTFN, sys.modules, "damaged module in sys.modules on %i try" % i) finally: del sys.path[0] remove_files(TESTFN)
Example #5
Source File: test_discovery.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_discovery_failed_discovery(self): loader = unittest.TestLoader() package = types.ModuleType('package') orig_import = __import__ def _import(packagename, *args, **kwargs): sys.modules[packagename] = package return package def cleanup(): builtins.__import__ = orig_import self.addCleanup(cleanup) builtins.__import__ = _import with self.assertRaises(TypeError) as cm: loader.discover('package') self.assertEqual(str(cm.exception), 'don\'t know how to discover from {!r}' .format(package))
Example #6
Source File: test_discovery.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_discovery_failed_discovery(self): loader = unittest.TestLoader() package = types.ModuleType('package') orig_import = __import__ def _import(packagename, *args, **kwargs): sys.modules[packagename] = package return package def cleanup(): builtins.__import__ = orig_import self.addCleanup(cleanup) builtins.__import__ = _import with self.assertRaises(TypeError) as cm: loader.discover('package') self.assertEqual(str(cm.exception), 'don\'t know how to discover from {!r}' .format(package))
Example #7
Source File: test_import.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_override_builtin(self): # Test that overriding builtins.__import__ can bypass sys.modules. import os def foo(): import os return os self.assertEqual(foo(), os) # Quick sanity check. with swap_attr(builtins, "__import__", lambda *x: 5): self.assertEqual(foo(), 5) # Test what happens when we shadow __import__ in globals(); this # currently does not impact the import process, but if this changes, # other code will need to change, so keep this test as a tripwire. with swap_item(globals(), "__import__", lambda *x: 5): self.assertEqual(foo(), os)
Example #8
Source File: __init__.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_override_builtin(self): # Test that overriding builtins.__import__ can bypass sys.modules. import os def foo(): import os return os self.assertEqual(foo(), os) # Quick sanity check. with swap_attr(builtins, "__import__", lambda *x: 5): self.assertEqual(foo(), 5) # Test what happens when we shadow __import__ in globals(); this # currently does not impact the import process, but if this changes, # other code will need to change, so keep this test as a tripwire. with swap_item(globals(), "__import__", lambda *x: 5): self.assertEqual(foo(), os)
Example #9
Source File: test_import.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_timestamp_overflow(self): # A modification timestamp larger than 2**32 should not be a problem # when importing a module (issue #11235). sys.path.insert(0, os.curdir) try: source = TESTFN + ".py" compiled = importlib.util.cache_from_source(source) with open(source, 'w') as f: pass try: os.utime(source, (2 ** 33 - 5, 2 ** 33 - 5)) except OverflowError: self.skipTest("cannot set modification time to large integer") except OSError as e: if e.errno != getattr(errno, 'EOVERFLOW', None): raise self.skipTest("cannot set modification time to large integer ({})".format(e)) __import__(TESTFN) # The pyc file was created. os.stat(compiled) finally: del sys.path[0] remove_files(TESTFN)
Example #10
Source File: __init__.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_failing_import_sticks(self): source = TESTFN + ".py" with open(source, "w") as f: print("a = 1/0", file=f) # New in 2.4, we shouldn't be able to import that no matter how often # we try. sys.path.insert(0, os.curdir) importlib.invalidate_caches() if TESTFN in sys.modules: del sys.modules[TESTFN] try: for i in [1, 2, 3]: self.assertRaises(ZeroDivisionError, __import__, TESTFN) self.assertNotIn(TESTFN, sys.modules, "damaged module in sys.modules on %i try" % i) finally: del sys.path[0] remove_files(TESTFN)
Example #11
Source File: test_play_utils.py From nussl with MIT License | 6 votes |
def test_jupyter_no_ffmpy(benchmark_audio, monkeypatch): import_orig = builtins.__import__ def mocked_import(name, globals_, locals_, fromlist, level): if name == 'ffmpy': raise ImportError() return import_orig(name, globals_, locals_, fromlist, level) monkeypatch.setattr(builtins, '__import__', mocked_import) for key, path in benchmark_audio.items(): s1 = nussl.AudioSignal(path) audio_element = nussl.play_utils.embed_audio(s1) assert os.path.splitext(audio_element.filename)[-1] == '.wav' monkeypatch.undo()
Example #12
Source File: test_import.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_package___cached__(self): # Like test___cached__ but for packages. def cleanup(): rmtree('pep3147') unload('pep3147.foo') unload('pep3147') os.mkdir('pep3147') self.addCleanup(cleanup) # Touch the __init__.py with open(os.path.join('pep3147', '__init__.py'), 'w'): pass with open(os.path.join('pep3147', 'foo.py'), 'w'): pass importlib.invalidate_caches() m = __import__('pep3147.foo') init_pyc = importlib.util.cache_from_source( os.path.join('pep3147', '__init__.py')) self.assertEqual(m.__cached__, os.path.join(os.curdir, init_pyc)) foo_pyc = importlib.util.cache_from_source(os.path.join('pep3147', 'foo.py')) self.assertEqual(sys.modules['pep3147.foo'].__cached__, os.path.join(os.curdir, foo_pyc))
Example #13
Source File: __init__.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_timestamp_overflow(self): # A modification timestamp larger than 2**32 should not be a problem # when importing a module (issue #11235). sys.path.insert(0, os.curdir) try: source = TESTFN + ".py" compiled = importlib.util.cache_from_source(source) with open(source, 'w') as f: pass try: os.utime(source, (2 ** 33 - 5, 2 ** 33 - 5)) except OverflowError: self.skipTest("cannot set modification time to large integer") except OSError as e: if e.errno not in (getattr(errno, 'EOVERFLOW', None), getattr(errno, 'EINVAL', None)): raise self.skipTest("cannot set modification time to large integer ({})".format(e)) __import__(TESTFN) # The pyc file was created. os.stat(compiled) finally: del sys.path[0] remove_files(TESTFN)
Example #14
Source File: importer.py From AutomaticPackageReloader with MIT License | 6 votes |
def __import__(self, name, globals=None, locals=None, fromlist=(), level=0): module = self._orig___import__(name, globals, locals, fromlist, level) self.reload(module) if fromlist: from_names = [ name for item in fromlist for name in ( getattr(module, '__all__', []) if item == '*' else (item,) ) ] for name in from_names: value = getattr(module, name, None) if ismodule(value): self.reload(value) return module
Example #15
Source File: __init__.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_package___cached__(self): # Like test___cached__ but for packages. def cleanup(): rmtree('pep3147') unload('pep3147.foo') unload('pep3147') os.mkdir('pep3147') self.addCleanup(cleanup) # Touch the __init__.py with open(os.path.join('pep3147', '__init__.py'), 'w'): pass with open(os.path.join('pep3147', 'foo.py'), 'w'): pass importlib.invalidate_caches() m = __import__('pep3147.foo') init_pyc = importlib.util.cache_from_source( os.path.join('pep3147', '__init__.py')) self.assertEqual(m.__cached__, os.path.join(os.curdir, init_pyc)) foo_pyc = importlib.util.cache_from_source(os.path.join('pep3147', 'foo.py')) self.assertEqual(sys.modules['pep3147.foo'].__cached__, os.path.join(os.curdir, foo_pyc))
Example #16
Source File: test_imp.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_import_from_custom(self): import builtins try: class foo(object): b = 'abc' def __import__(name, globals, locals, fromlist, level): global received received = name, fromlist return foo() saved = builtins.__import__ builtins.__import__ = __import__ from a import b self.assertEqual(received, ('a', ('b', ))) finally: builtins.__import__ = saved
Example #17
Source File: test_import.py From ironpython3 with Apache License 2.0 | 5 votes |
def test___cached___legacy_pyc(self): # Like test___cached__() except that for backward compatibility, # when the pyc file lives where the py file would have been (and named # without the tag), it is importable. The __cached__ of the imported # module is the pyc location. __import__(TESTFN) # pyc_file gets removed in _clean() via tearDown(). pyc_file = make_legacy_pyc(self.source) os.remove(self.source) unload(TESTFN) importlib.invalidate_caches() m = __import__(TESTFN) self.assertEqual(m.__cached__, os.path.join(os.curdir, os.path.relpath(pyc_file)))
Example #18
Source File: test_import.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_import_by_filename(self): path = os.path.abspath(TESTFN) encoding = sys.getfilesystemencoding() try: path.encode(encoding) except UnicodeEncodeError: self.skipTest('path is not encodable to {}'.format(encoding)) with self.assertRaises(ImportError) as c: __import__(path)
Example #19
Source File: test_import.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_missing_source_legacy(self): # Like test_missing_source() except that for backward compatibility, # when the pyc file lives where the py file would have been (and named # without the tag), it is importable. The __file__ of the imported # module is the pyc location. __import__(TESTFN) # pyc_file gets removed in _clean() via tearDown(). pyc_file = make_legacy_pyc(self.source) os.remove(self.source) unload(TESTFN) importlib.invalidate_caches() m = __import__(TESTFN) self.assertEqual(m.__file__, os.path.join(os.curdir, os.path.relpath(pyc_file)))
Example #20
Source File: test_import.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_package___cached___from_pyc(self): # Like test___cached__ but ensuring __cached__ when imported from a # PEP 3147 pyc file. def cleanup(): rmtree('pep3147') unload('pep3147.foo') unload('pep3147') os.mkdir('pep3147') self.addCleanup(cleanup) # Touch the __init__.py with open(os.path.join('pep3147', '__init__.py'), 'w'): pass with open(os.path.join('pep3147', 'foo.py'), 'w'): pass importlib.invalidate_caches() m = __import__('pep3147.foo') unload('pep3147.foo') unload('pep3147') importlib.invalidate_caches() m = __import__('pep3147.foo') init_pyc = importlib.util.cache_from_source( os.path.join('pep3147', '__init__.py')) self.assertEqual(m.__cached__, os.path.join(os.curdir, init_pyc)) foo_pyc = importlib.util.cache_from_source(os.path.join('pep3147', 'foo.py')) self.assertEqual(sys.modules['pep3147.foo'].__cached__, os.path.join(os.curdir, foo_pyc))
Example #21
Source File: test_import.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_cached_mode_issue_2051(self): # permissions of .pyc should match those of .py, regardless of mask mode = 0o600 with temp_umask(0o022), _ready_to_import() as (name, path): cached_path = importlib.util.cache_from_source(path) os.chmod(path, mode) __import__(name) if not os.path.exists(cached_path): self.fail("__import__ did not result in creation of " "either a .pyc or .pyo file") stat_info = os.stat(cached_path) self.assertEqual(oct(stat.S_IMODE(stat_info.st_mode)), oct(mode))
Example #22
Source File: regrtest.py From ironpython3 with Apache License 2.0 | 5 votes |
def restore___import__(self, import_): builtins.__import__ = import_
Example #23
Source File: test_discovery.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_discovery_from_dotted_namespace_packages(self): loader = unittest.TestLoader() orig_import = __import__ package = types.ModuleType('package') package.__path__ = ['/a', '/b'] package.__spec__ = types.SimpleNamespace( loader=None, submodule_search_locations=['/a', '/b'] ) def _import(packagename, *args, **kwargs): sys.modules[packagename] = package return package def cleanup(): builtins.__import__ = orig_import self.addCleanup(cleanup) builtins.__import__ = _import _find_tests_args = [] def _find_tests(start_dir, pattern, namespace=None): _find_tests_args.append((start_dir, pattern)) return ['%s/tests' % start_dir] loader._find_tests = _find_tests loader.suiteClass = list suite = loader.discover('package') self.assertEqual(suite, ['/a/tests', '/b/tests'])
Example #24
Source File: test_commander.py From cauldron with MIT License | 5 votes |
def test_preload_fail_plotly(self, ): """Should preload even if plotly is not available""" real_import = builtins.__import__ def fake_import(*args, **kwargs): if args and args[0].startswith('plotly'): raise ImportError('Fake Error') return real_import(*args, **kwargs) with patch('builtins.__import__') as import_func: import_func.side_effect = fake_import commander.preload()
Example #25
Source File: mocking.py From cauldron with MIT License | 5 votes |
def __init__(self): self.mock_importer = MockImporter([]) self._patch = patch( 'builtins.__import__', new=self.mock_importer )
Example #26
Source File: test_render.py From cauldron with MIT License | 5 votes |
def test_plotly_import_error(self): """Should fail if unable to import with plotly""" real_import = builtins.__import__ def fake_import(*args, **kwargs): if args and args[0] == 'plotly': raise ImportError('Fake Error') return real_import(*args, **kwargs) with patch('builtins.__import__') as import_func: import_func.side_effect = fake_import result = render.plotly([], {}) self.assertGreater(result.find('cd-ImportError'), 0)
Example #27
Source File: _compat.py From bash-lambda-layer with MIT License | 5 votes |
def __import__(name, globals={}, locals={}, fromlist=[], level=-1): """Compatibility definition for Python 2.4. Silently ignore the `level` argument missing in Python < 2.5. """ # we need the level arg because the default changed in Python 3.3 return builtins.__import__(name, globals, locals, fromlist)
Example #28
Source File: test_environments.py From safe-exploration with MIT License | 5 votes |
def no_matplotlib(monkeypatch): """ Mock an import error for matplotlib""" import_orig = builtins.__import__ def mocked_import(name, globals, locals, fromlist, level): """ """ if name == 'matplotlib.pyplot': raise ImportError("This is a mocked import error") return import_orig(name, globals, locals, fromlist, level) monkeypatch.setattr(builtins, '__import__', mocked_import)
Example #29
Source File: __init__.py From pyq with Apache License 2.0 | 5 votes |
def __import__(name, globals={}, locals={}, fromlist=[], level=0, _imp=_imp, _c=converters, _lc=lazy_converters): m = _imp(name, globals, locals, fromlist, level) pairs = _lc.get(m.__name__) if pairs is not None: _c.update((getattr(m, cname), conv) for cname, conv in pairs) return m
Example #30
Source File: __init__.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_unencodable_filename(self): # Issue #11619: The Python parser and the import machinery must not # encode filenames, especially on Windows pyname = script_helper.make_script('', TESTFN_UNENCODABLE, 'pass') self.addCleanup(unlink, pyname) name = pyname[:-3] script_helper.assert_python_ok("-c", "mod = __import__(%a)" % name, __isolated=False)