bpo-41490: Update ensurepip to install pip 20.2.1 and setuptools 49.2.1 (GH-21774)

This commit is contained in:
Steve Dower 2020-08-08 00:47:40 +01:00 committed by GitHub
parent 1ecbfbc26a
commit 70e9243a55
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 74 additions and 2 deletions

View file

@ -9,6 +9,7 @@ on:
- 3.7
paths:
- 'Tools/msi/**'
- 'Lib/ensurepip/**'
pull_request:
branches:
- master
@ -17,6 +18,7 @@ on:
- 3.7
paths:
- 'Tools/msi/**'
- 'Lib/ensurepip/**'
jobs:
build_win32:

View file

@ -12,9 +12,9 @@ from . import _bundled
__all__ = ["version", "bootstrap"]
_SETUPTOOLS_VERSION = "47.1.0"
_SETUPTOOLS_VERSION = "49.2.1"
_PIP_VERSION = "20.1.1"
_PIP_VERSION = "20.2.1"
_PROJECTS = [
("setuptools", _SETUPTOOLS_VERSION, "py3"),

View file

@ -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 @@ class NamespaceTest(unittest.TestCase):
'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()

View file

@ -0,0 +1 @@
Update :mod:`ensurepip` to install pip 20.2.1 and setuptools 49.2.1.