• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1from test.test_importlib import abc, util
2
3machinery = util.import_importlib('importlib.machinery')
4
5import unittest
6import sys
7
8
9class FinderTests(abc.FinderTests):
10
11    """Test the finder for extension modules."""
12
13    def setUp(self):
14        if not self.machinery.EXTENSION_SUFFIXES:
15            raise unittest.SkipTest("Requires dynamic loading support.")
16        if util.EXTENSIONS.name in sys.builtin_module_names:
17            raise unittest.SkipTest(
18                f"{util.EXTENSIONS.name} is a builtin module"
19            )
20
21    def find_spec(self, fullname):
22        importer = self.machinery.FileFinder(util.EXTENSIONS.path,
23                                            (self.machinery.ExtensionFileLoader,
24                                             self.machinery.EXTENSION_SUFFIXES))
25
26        return importer.find_spec(fullname)
27
28    def test_module(self):
29        self.assertTrue(self.find_spec(util.EXTENSIONS.name))
30
31    # No extension module as an __init__ available for testing.
32    test_package = test_package_in_package = None
33
34    # No extension module in a package available for testing.
35    test_module_in_package = None
36
37    # Extension modules cannot be an __init__ for a package.
38    test_package_over_module = None
39
40    def test_failure(self):
41        self.assertIsNone(self.find_spec('asdfjkl;'))
42
43
44(Frozen_FinderTests,
45 Source_FinderTests
46 ) = util.test_both(FinderTests, machinery=machinery)
47
48
49if __name__ == '__main__':
50    unittest.main()
51