| 
									
										
										
										
											2009-01-30 00:22:35 +00:00
										 |  |  | from .. import abc | 
					
						
							| 
									
										
										
										
											2009-02-01 04:00:05 +00:00
										 |  |  | from .. import util | 
					
						
							| 
									
										
										
										
											2009-01-18 00:24:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-16 11:40:40 -06:00
										 |  |  | machinery = util.import_importlib('importlib.machinery') | 
					
						
							| 
									
										
										
										
											2013-10-25 12:44:36 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-18 00:24:28 +00:00
										 |  |  | import sys | 
					
						
							|  |  |  | import unittest | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-25 12:44:36 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-09 14:32:57 -04:00
										 |  |  | @unittest.skipIf(util.BUILTINS.good_name is None, 'no reasonable builtin module') | 
					
						
							| 
									
										
										
										
											2013-11-22 09:05:39 -07:00
										 |  |  | class FindSpecTests(abc.FinderTests): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     """Test find_spec() for built-in modules.""" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_module(self): | 
					
						
							|  |  |  |         # Common case. | 
					
						
							| 
									
										
										
										
											2014-05-09 14:32:57 -04:00
										 |  |  |         with util.uncache(util.BUILTINS.good_name): | 
					
						
							|  |  |  |             found = self.machinery.BuiltinImporter.find_spec(util.BUILTINS.good_name) | 
					
						
							| 
									
										
										
										
											2013-11-22 09:05:39 -07:00
										 |  |  |             self.assertTrue(found) | 
					
						
							|  |  |  |             self.assertEqual(found.origin, 'built-in') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Built-in modules cannot be a package. | 
					
						
							|  |  |  |     test_package = None | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Built-in modules cannobt be in a package. | 
					
						
							|  |  |  |     test_module_in_package = None | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Built-in modules cannot be a package. | 
					
						
							|  |  |  |     test_package_in_package = None | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Built-in modules cannot be a package. | 
					
						
							|  |  |  |     test_package_over_module = None | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_failure(self): | 
					
						
							|  |  |  |         name = 'importlib' | 
					
						
							|  |  |  |         assert name not in sys.builtin_module_names | 
					
						
							|  |  |  |         spec = self.machinery.BuiltinImporter.find_spec(name) | 
					
						
							|  |  |  |         self.assertIsNone(spec) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_ignore_path(self): | 
					
						
							|  |  |  |         # The value for 'path' should always trigger a failed import. | 
					
						
							| 
									
										
										
										
											2014-05-09 14:32:57 -04:00
										 |  |  |         with util.uncache(util.BUILTINS.good_name): | 
					
						
							|  |  |  |             spec = self.machinery.BuiltinImporter.find_spec(util.BUILTINS.good_name, | 
					
						
							| 
									
										
										
										
											2013-11-22 09:05:39 -07:00
										 |  |  |                                                             ['pkg']) | 
					
						
							|  |  |  |             self.assertIsNone(spec) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-16 11:40:40 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | (Frozen_FindSpecTests, | 
					
						
							|  |  |  |  Source_FindSpecTests | 
					
						
							|  |  |  |  ) = util.test_both(FindSpecTests, machinery=machinery) | 
					
						
							| 
									
										
										
										
											2013-11-22 09:05:39 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-09 14:32:57 -04:00
										 |  |  | @unittest.skipIf(util.BUILTINS.good_name is None, 'no reasonable builtin module') | 
					
						
							| 
									
										
										
										
											2013-10-25 12:44:36 -04:00
										 |  |  | class FinderTests(abc.FinderTests): | 
					
						
							| 
									
										
										
										
											2009-01-18 00:24:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     """Test find_module() for built-in modules.""" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-27 01:41:57 +00:00
										 |  |  |     def test_module(self): | 
					
						
							| 
									
										
										
										
											2009-01-18 00:24:28 +00:00
										 |  |  |         # Common case. | 
					
						
							| 
									
										
										
										
											2014-05-09 14:32:57 -04:00
										 |  |  |         with util.uncache(util.BUILTINS.good_name): | 
					
						
							|  |  |  |             found = self.machinery.BuiltinImporter.find_module(util.BUILTINS.good_name) | 
					
						
							| 
									
										
										
										
											2009-06-30 23:06:06 +00:00
										 |  |  |             self.assertTrue(found) | 
					
						
							| 
									
										
										
										
											2013-11-22 09:05:39 -07:00
										 |  |  |             self.assertTrue(hasattr(found, 'load_module')) | 
					
						
							| 
									
										
										
										
											2009-01-27 01:41:57 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-22 09:05:39 -07:00
										 |  |  |     # Built-in modules cannot be a package. | 
					
						
							|  |  |  |     test_package = test_package_in_package = test_package_over_module = None | 
					
						
							| 
									
										
										
										
											2009-01-27 01:41:57 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-22 09:05:39 -07:00
										 |  |  |     # Built-in modules cannot be in a package. | 
					
						
							|  |  |  |     test_module_in_package = None | 
					
						
							| 
									
										
										
										
											2009-01-27 01:41:57 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_failure(self): | 
					
						
							|  |  |  |         assert 'importlib' not in sys.builtin_module_names | 
					
						
							| 
									
										
										
										
											2013-10-25 12:44:36 -04:00
										 |  |  |         loader = self.machinery.BuiltinImporter.find_module('importlib') | 
					
						
							| 
									
										
										
										
											2012-06-28 06:15:01 -04:00
										 |  |  |         self.assertIsNone(loader) | 
					
						
							| 
									
										
										
										
											2009-01-18 00:24:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_ignore_path(self): | 
					
						
							|  |  |  |         # The value for 'path' should always trigger a failed import. | 
					
						
							| 
									
										
										
										
											2014-05-09 14:32:57 -04:00
										 |  |  |         with util.uncache(util.BUILTINS.good_name): | 
					
						
							|  |  |  |             loader = self.machinery.BuiltinImporter.find_module(util.BUILTINS.good_name, | 
					
						
							| 
									
										
										
										
											2009-03-15 01:41:33 +00:00
										 |  |  |                                                             ['pkg']) | 
					
						
							| 
									
										
										
										
											2012-06-28 06:15:01 -04:00
										 |  |  |             self.assertIsNone(loader) | 
					
						
							| 
									
										
										
										
											2009-01-18 00:24:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-16 11:40:40 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | (Frozen_FinderTests, | 
					
						
							|  |  |  |  Source_FinderTests | 
					
						
							|  |  |  |  ) = util.test_both(FinderTests, machinery=machinery) | 
					
						
							| 
									
										
										
										
											2009-01-18 00:24:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							| 
									
										
										
										
											2013-10-25 12:33:59 -04:00
										 |  |  |     unittest.main() |