1
from importlib import _bootstrap
2
from . import util as ext_util
10
class LoaderTests(abc.LoaderTests):
12
"""Test load_module() for extension modules."""
14
def load_module(self, fullname):
15
loader = _bootstrap._ExtensionFileLoader(ext_util.NAME,
16
ext_util.FILEPATH, False)
17
return loader.load_module(fullname)
19
def test_module(self):
20
with util.uncache(ext_util.NAME):
21
module = self.load_module(ext_util.NAME)
22
for attr, value in [('__name__', ext_util.NAME),
23
('__file__', ext_util.FILEPATH),
25
self.assertEqual(getattr(module, attr), value)
26
self.assert_(ext_util.NAME in sys.modules)
27
self.assert_(isinstance(module.__loader__,
28
_bootstrap._ExtensionFileLoader))
30
def test_package(self):
31
# Extensions are not found in packages.
34
def test_lacking_parent(self):
35
# Extensions are not found in packages.
38
def test_module_reuse(self):
39
with util.uncache(ext_util.NAME):
40
module1 = self.load_module(ext_util.NAME)
41
module2 = self.load_module(ext_util.NAME)
42
self.assert_(module1 is module2)
44
def test_state_after_failure(self):
45
# No easy way to trigger a failure after a successful import.
48
def test_unloadable(self):
49
self.assertRaises(ImportError, self.load_module, 'asdfjkl;')
53
from test.support import run_unittest
54
run_unittest(LoaderTests)
57
if __name__ == '__main__':