ยปCore Development>Code coverage>Lib/importlib/test/extension/test_loader.py

Python code coverage for Lib/importlib/test/extension/test_loader.py

#countcontent
1n/afrom importlib import machinery
2n/afrom . import util as ext_util
3n/afrom .. import abc
4n/afrom .. import util
5n/a
6n/aimport sys
7n/aimport unittest
8n/a
9n/a
10n/aclass LoaderTests(abc.LoaderTests):
11n/a
12n/a """Test load_module() for extension modules."""
13n/a
14n/a def setUp(self):
15n/a self.loader = machinery.ExtensionFileLoader(ext_util.NAME,
16n/a ext_util.FILEPATH)
17n/a
18n/a def load_module(self, fullname):
19n/a return self.loader.load_module(fullname)
20n/a
21n/a def test_load_module_API(self):
22n/a # Test the default argument for load_module().
23n/a self.loader.load_module()
24n/a self.loader.load_module(None)
25n/a with self.assertRaises(ImportError):
26n/a self.load_module('XXX')
27n/a
28n/a
29n/a def test_module(self):
30n/a with util.uncache(ext_util.NAME):
31n/a module = self.load_module(ext_util.NAME)
32n/a for attr, value in [('__name__', ext_util.NAME),
33n/a ('__file__', ext_util.FILEPATH),
34n/a ('__package__', '')]:
35n/a self.assertEqual(getattr(module, attr), value)
36n/a self.assertIn(ext_util.NAME, sys.modules)
37n/a self.assertIsInstance(module.__loader__,
38n/a machinery.ExtensionFileLoader)
39n/a
40n/a def test_package(self):
41n/a # Extensions are not found in packages.
42n/a pass
43n/a
44n/a def test_lacking_parent(self):
45n/a # Extensions are not found in packages.
46n/a pass
47n/a
48n/a def test_module_reuse(self):
49n/a with util.uncache(ext_util.NAME):
50n/a module1 = self.load_module(ext_util.NAME)
51n/a module2 = self.load_module(ext_util.NAME)
52n/a self.assertIs(module1, module2)
53n/a
54n/a def test_state_after_failure(self):
55n/a # No easy way to trigger a failure after a successful import.
56n/a pass
57n/a
58n/a def test_unloadable(self):
59n/a name = 'asdfjkl;'
60n/a with self.assertRaises(ImportError) as cm:
61n/a self.load_module(name)
62n/a self.assertEqual(cm.exception.name, name)
63n/a
64n/a
65n/adef test_main():
66n/a from test.support import run_unittest
67n/a run_unittest(LoaderTests)
68n/a
69n/a
70n/aif __name__ == '__main__':
71n/a test_main()