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