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

Python code coverage for Lib/importlib/test/test_abc.py

#countcontent
1n/afrom importlib import abc
2n/afrom importlib import machinery
3n/aimport inspect
4n/aimport unittest
5n/a
6n/a
7n/aclass InheritanceTests:
8n/a
9n/a """Test that the specified class is a subclass/superclass of the expected
10n/a classes."""
11n/a
12n/a subclasses = []
13n/a superclasses = []
14n/a
15n/a def __init__(self, *args, **kwargs):
16n/a super().__init__(*args, **kwargs)
17n/a assert self.subclasses or self.superclasses, self.__class__
18n/a self.__test = getattr(abc, self.__class__.__name__)
19n/a
20n/a def test_subclasses(self):
21n/a # Test that the expected subclasses inherit.
22n/a for subclass in self.subclasses:
23n/a self.assertTrue(issubclass(subclass, self.__test),
24n/a "{0} is not a subclass of {1}".format(subclass, self.__test))
25n/a
26n/a def test_superclasses(self):
27n/a # Test that the class inherits from the expected superclasses.
28n/a for superclass in self.superclasses:
29n/a self.assertTrue(issubclass(self.__test, superclass),
30n/a "{0} is not a superclass of {1}".format(superclass, self.__test))
31n/a
32n/a
33n/aclass Finder(InheritanceTests, unittest.TestCase):
34n/a
35n/a subclasses = [machinery.BuiltinImporter, machinery.FrozenImporter,
36n/a machinery.PathFinder]
37n/a
38n/a
39n/aclass Loader(InheritanceTests, unittest.TestCase):
40n/a
41n/a subclasses = [abc.PyLoader]
42n/a
43n/a
44n/aclass ResourceLoader(InheritanceTests, unittest.TestCase):
45n/a
46n/a superclasses = [abc.Loader]
47n/a
48n/a
49n/aclass InspectLoader(InheritanceTests, unittest.TestCase):
50n/a
51n/a superclasses = [abc.Loader]
52n/a subclasses = [abc.PyLoader, machinery.BuiltinImporter,
53n/a machinery.FrozenImporter, machinery.ExtensionFileLoader]
54n/a
55n/a
56n/aclass ExecutionLoader(InheritanceTests, unittest.TestCase):
57n/a
58n/a superclasses = [abc.InspectLoader]
59n/a subclasses = [abc.PyLoader]
60n/a
61n/a
62n/aclass FileLoader(InheritanceTests, unittest.TestCase):
63n/a
64n/a superclasses = [abc.ResourceLoader, abc.ExecutionLoader]
65n/a subclasses = [machinery.SourceFileLoader, machinery.SourcelessFileLoader]
66n/a
67n/a
68n/aclass SourceLoader(InheritanceTests, unittest.TestCase):
69n/a
70n/a superclasses = [abc.ResourceLoader, abc.ExecutionLoader]
71n/a subclasses = [machinery.SourceFileLoader]
72n/a
73n/a
74n/aclass PyLoader(InheritanceTests, unittest.TestCase):
75n/a
76n/a superclasses = [abc.Loader, abc.ResourceLoader, abc.ExecutionLoader]
77n/a
78n/a
79n/aclass PyPycLoader(InheritanceTests, unittest.TestCase):
80n/a
81n/a superclasses = [abc.PyLoader]
82n/a
83n/a
84n/adef test_main():
85n/a from test.support import run_unittest
86n/a classes = []
87n/a for class_ in globals().values():
88n/a if (inspect.isclass(class_) and
89n/a issubclass(class_, unittest.TestCase) and
90n/a issubclass(class_, InheritanceTests)):
91n/a classes.append(class_)
92n/a run_unittest(*classes)
93n/a
94n/a
95n/aif __name__ == '__main__':
96n/a test_main()