def test_load_builtin_no_pass_through(self): self.test_policies['thread'] = sandbox.ModuleOverridePolicy( None, [], {}, default_pass_through=False) thread = self.hook.load_module('thread') self.assertTrue(isinstance(thread, types.ModuleType)) self.assertItemsEqual( ['__doc__', '__name__', '__package__', '__loader__'], dir(thread)) self.assertEqual(self.hook, thread.__loader__)
def test_load_builtin_pass_through(self): symbols = dir(__import__('thread')) del sys.modules['thread'] self.test_policies['thread'] = sandbox.ModuleOverridePolicy( None, [], {}, default_pass_through=True) thread = self.hook.load_module('thread') self.assertTrue(isinstance(thread, types.ModuleType)) self.assertTrue(isinstance(thread.__doc__, str)) self.assertItemsEqual(symbols + ['__loader__'], dir(thread)) self.assertEqual(self.hook, thread.__loader__)
def test_load_with_path_hook_cant_find(self): class DummyPathHook(object): def __init__(self, path): if path != 'dummy/path': raise ImportError def find_module(self, unused_fullname): return None def load_module(self, fullname): raise ImportError self.test_policies['distutils.util'] = sandbox.ModuleOverridePolicy( None, [], {}, default_pass_through=True) sys.path_hooks = [DummyPathHook] util = self.hook.load_module('distutils.util') self.assertEqual('distutils.util', util.__name__)
def test_load_without_path_hook_not_found(self): self.test_policies['urllib'] = sandbox.ModuleOverridePolicy( None, [], {}, default_pass_through=True) self.assertRaises(ImportError, self.hook.load_module, 'fake_module')
def test_load_without_path_hook(self): self.test_policies['urllib'] = sandbox.ModuleOverridePolicy( None, [], {}, default_pass_through=True) urllib = self.hook.load_module('urllib') self.assertIn('urlopen', urllib.__dict__) self.assertEqual('urllib', urllib.__name__)