mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	bpo-41490: Update ensurepip to install pip 20.2.1 and setuptools 49.2.1 (GH-21774)
This commit is contained in:
		
							parent
							
								
									1ecbfbc26a
								
							
						
					
					
						commit
						70e9243a55
					
				
					 6 changed files with 74 additions and 2 deletions
				
			
		|  | @ -1,10 +1,13 @@ | |||
| import sys | ||||
| import unittest | ||||
| import uuid | ||||
| 
 | ||||
| from . import data01 | ||||
| from . import zipdata01, zipdata02 | ||||
| from . import util | ||||
| from importlib import resources, import_module | ||||
| from pathlib import Path | ||||
| from test import support | ||||
| 
 | ||||
| 
 | ||||
| class ResourceTests: | ||||
|  | @ -162,5 +165,71 @@ def test_namespaces_cannot_have_resources(self): | |||
|             'test.test_importlib.data03.namespace', 'resource1.txt') | ||||
| 
 | ||||
| 
 | ||||
| class DeletingZipsTest(unittest.TestCase): | ||||
|     """Having accessed resources in a zip file should not keep an open | ||||
|     reference to the zip. | ||||
|     """ | ||||
|     ZIP_MODULE = zipdata01 | ||||
| 
 | ||||
|     def setUp(self): | ||||
|         modules = support.modules_setup() | ||||
|         self.addCleanup(support.modules_cleanup, *modules) | ||||
| 
 | ||||
|         data_path = Path(self.ZIP_MODULE.__file__) | ||||
|         data_dir = data_path.parent | ||||
|         self.source_zip_path = data_dir / 'ziptestdata.zip' | ||||
|         self.zip_path = Path.cwd() / '{}.zip'.format(uuid.uuid4()) | ||||
|         self.zip_path.write_bytes(self.source_zip_path.read_bytes()) | ||||
|         sys.path.append(str(self.zip_path)) | ||||
|         self.data = import_module('ziptestdata') | ||||
| 
 | ||||
|     def tearDown(self): | ||||
|         try: | ||||
|             sys.path.remove(str(self.zip_path)) | ||||
|         except ValueError: | ||||
|             pass | ||||
| 
 | ||||
|         try: | ||||
|             del sys.path_importer_cache[str(self.zip_path)] | ||||
|             del sys.modules[self.data.__name__] | ||||
|         except KeyError: | ||||
|             pass | ||||
| 
 | ||||
|         try: | ||||
|             support.unlink(self.zip_path) | ||||
|         except OSError: | ||||
|             # If the test fails, this will probably fail too | ||||
|             pass | ||||
| 
 | ||||
|     def test_contents_does_not_keep_open(self): | ||||
|         c = resources.contents('ziptestdata') | ||||
|         self.zip_path.unlink() | ||||
| 
 | ||||
|     def test_is_resource_does_not_keep_open(self): | ||||
|         c = resources.is_resource('ziptestdata', 'binary.file') | ||||
|         self.zip_path.unlink() | ||||
| 
 | ||||
|     def test_is_resource_failure_does_not_keep_open(self): | ||||
|         c = resources.is_resource('ziptestdata', 'not-present') | ||||
|         self.zip_path.unlink() | ||||
| 
 | ||||
|     def test_path_does_not_keep_open(self): | ||||
|         c = resources.path('ziptestdata', 'binary.file') | ||||
|         self.zip_path.unlink() | ||||
| 
 | ||||
|     def test_entered_path_does_not_keep_open(self): | ||||
|         # This is what certifi does on import to make its bundle | ||||
|         # available for the process duration. | ||||
|         c = resources.path('ziptestdata', 'binary.file').__enter__() | ||||
|         self.zip_path.unlink() | ||||
| 
 | ||||
|     def test_read_binary_does_not_keep_open(self): | ||||
|         c = resources.read_binary('ziptestdata', 'binary.file') | ||||
|         self.zip_path.unlink() | ||||
| 
 | ||||
|     def test_read_text_does_not_keep_open(self): | ||||
|         c = resources.read_text('ziptestdata', 'utf-8.file', encoding='utf-8') | ||||
|         self.zip_path.unlink() | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|     unittest.main() | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Steve Dower
						Steve Dower