mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			84 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from .. import abc
 | 
						|
from .. import util
 | 
						|
 | 
						|
machinery = util.import_importlib('importlib.machinery')
 | 
						|
 | 
						|
import unittest
 | 
						|
 | 
						|
 | 
						|
class FindSpecTests(abc.FinderTests):
 | 
						|
 | 
						|
    """Test finding frozen modules."""
 | 
						|
 | 
						|
    def find(self, name, path=None):
 | 
						|
        finder = self.machinery.FrozenImporter
 | 
						|
        return finder.find_spec(name, path)
 | 
						|
 | 
						|
    def test_module(self):
 | 
						|
        name = '__hello__'
 | 
						|
        spec = self.find(name)
 | 
						|
        self.assertEqual(spec.origin, 'frozen')
 | 
						|
 | 
						|
    def test_package(self):
 | 
						|
        spec = self.find('__phello__')
 | 
						|
        self.assertIsNotNone(spec)
 | 
						|
 | 
						|
    def test_module_in_package(self):
 | 
						|
        spec = self.find('__phello__.spam', ['__phello__'])
 | 
						|
        self.assertIsNotNone(spec)
 | 
						|
 | 
						|
    # No frozen package within another package to test with.
 | 
						|
    test_package_in_package = None
 | 
						|
 | 
						|
    # No easy way to test.
 | 
						|
    test_package_over_module = None
 | 
						|
 | 
						|
    def test_failure(self):
 | 
						|
        spec = self.find('<not real>')
 | 
						|
        self.assertIsNone(spec)
 | 
						|
 | 
						|
 | 
						|
(Frozen_FindSpecTests,
 | 
						|
 Source_FindSpecTests
 | 
						|
 ) = util.test_both(FindSpecTests, machinery=machinery)
 | 
						|
 | 
						|
 | 
						|
class FinderTests(abc.FinderTests):
 | 
						|
 | 
						|
    """Test finding frozen modules."""
 | 
						|
 | 
						|
    def find(self, name, path=None):
 | 
						|
        finder = self.machinery.FrozenImporter
 | 
						|
        return finder.find_module(name, path)
 | 
						|
 | 
						|
    def test_module(self):
 | 
						|
        name = '__hello__'
 | 
						|
        loader = self.find(name)
 | 
						|
        self.assertTrue(hasattr(loader, 'load_module'))
 | 
						|
 | 
						|
    def test_package(self):
 | 
						|
        loader = self.find('__phello__')
 | 
						|
        self.assertTrue(hasattr(loader, 'load_module'))
 | 
						|
 | 
						|
    def test_module_in_package(self):
 | 
						|
        loader = self.find('__phello__.spam', ['__phello__'])
 | 
						|
        self.assertTrue(hasattr(loader, 'load_module'))
 | 
						|
 | 
						|
    # No frozen package within another package to test with.
 | 
						|
    test_package_in_package = None
 | 
						|
 | 
						|
    # No easy way to test.
 | 
						|
    test_package_over_module = None
 | 
						|
 | 
						|
    def test_failure(self):
 | 
						|
        loader = self.find('<not real>')
 | 
						|
        self.assertIsNone(loader)
 | 
						|
 | 
						|
 | 
						|
(Frozen_FinderTests,
 | 
						|
 Source_FinderTests
 | 
						|
 ) = util.test_both(FinderTests, machinery=machinery)
 | 
						|
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    unittest.main()
 |