test the finder for extension modules def setupself if not self machinery extensionsuffixes raise unittest skiptestrequires dynamic loading support if util extensions name in sys builtinmodulenames raise unittest skiptest futil extensions name is a builtin module def findspecself fullname importer self machinery filefinderutil extensions path self machinery extensionfileloader self machinery extensionsuffixes return importer findspecfullname def testmoduleself self asserttrueself findspecutil extensions name no extension module as an init available for testing testpackage testpackageinpackage none no extension module in a package available for testing testmoduleinpackage none extension modules cannot be an init for a package testpackageovermodule none def testfailureself self assertisnoneself findspec asdfjkl frozenfindertests sourcefindertests util testbothfindertests machinerymachinery if name main unittest main test the finder for extension modules no extension module as an __init__ available for testing no extension module in a package available for testing extension modules cannot be an __init__ for a package
from test.test_importlib import abc, util

machinery = util.import_importlib('importlib.machinery')

import unittest
import sys


class FinderTests(abc.FinderTests):

    

    def setUp(self):
        if not self.machinery.EXTENSION_SUFFIXES:
            raise unittest.SkipTest("Requires dynamic loading support.")
        if util.EXTENSIONS.name in sys.builtin_module_names:
            raise unittest.SkipTest(
                f"{util.EXTENSIONS.name} is a builtin module"
            )

    def find_spec(self, fullname):
        importer = self.machinery.FileFinder(util.EXTENSIONS.path,
                                            (self.machinery.ExtensionFileLoader,
                                             self.machinery.EXTENSION_SUFFIXES))

        return importer.find_spec(fullname)

    def test_module(self):
        self.assertTrue(self.find_spec(util.EXTENSIONS.name))

    
    test_package = test_package_in_package = None

    
    test_module_in_package = None

    
    test_package_over_module = None

    def test_failure(self):
        self.assertIsNone(self.find_spec('asdfjkl;'))


(Frozen_FinderTests,
 Source_FinderTests
 ) = util.test_both(FinderTests, machinery=machinery)


if __name__ == '__main__':
    unittest.main()