summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Coghlan <ncoghlan@gmail.com>2014-02-28 23:35:05 +1000
committerNick Coghlan <ncoghlan@gmail.com>2014-02-28 23:35:05 +1000
commita46cf12e9956dbb0fa84cc1d7e8b81d4d2f7c55a (patch)
tree38fddc902f210fa79e212a302d9cc36938305edd
parent26dd0ff075bcfcdc6eebe584dce55dfd2f1b1537 (diff)
downloadcpython-git-a46cf12e9956dbb0fa84cc1d7e8b81d4d2f7c55a.tar.gz
Close #20757: return success for skipped pip uninstall
The 3.4rc2 Windows uninstaller would fail if pip had been updated to a version that didn't match the version installed by ensurepip. This skip is no longer treated as an error, so an updated pip ends up being handled like any other pip installed package and is left alone by the CPython uninstaller.
-rw-r--r--Lib/ensurepip/__init__.py5
-rw-r--r--Lib/test/test_ensurepip.py6
-rw-r--r--Misc/NEWS14
3 files changed, 21 insertions, 4 deletions
diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
index f584bdc4d1..7cf6a4b826 100644
--- a/Lib/ensurepip/__init__.py
+++ b/Lib/ensurepip/__init__.py
@@ -128,9 +128,10 @@ def _uninstall_helper(*, verbosity=0):
# If the pip version doesn't match the bundled one, leave it alone
if pip.__version__ != _PIP_VERSION:
- msg = ("ensurepip will only uninstall a matching pip "
+ msg = ("ensurepip will only uninstall a matching version "
"({!r} installed, {!r} bundled)")
- raise RuntimeError(msg.format(pip.__version__, _PIP_VERSION))
+ print(msg.format(pip.__version__, _PIP_VERSION), file=sys.stderr)
+ return
_require_ssl_for_pip()
_disable_pip_configuration_settings()
diff --git a/Lib/test/test_ensurepip.py b/Lib/test/test_ensurepip.py
index 8644a651bb..70b41538a3 100644
--- a/Lib/test/test_ensurepip.py
+++ b/Lib/test/test_ensurepip.py
@@ -196,10 +196,12 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase):
ensurepip._uninstall_helper()
self.run_pip.assert_not_called()
- def test_uninstall_fails_with_wrong_version(self):
+ def test_uninstall_skipped_with_warning_for_wrong_version(self):
with fake_pip("not a valid version"):
- with self.assertRaises(RuntimeError):
+ with test.support.captured_stderr() as stderr:
ensurepip._uninstall_helper()
+ warning = stderr.getvalue().strip()
+ self.assertIn("only uninstall a matching version", warning)
self.run_pip.assert_not_called()
diff --git a/Misc/NEWS b/Misc/NEWS
index f64235364a..554de26ee6 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -2,6 +2,20 @@
Python News
+++++++++++
+What's New in Python 3.4.0 release candidate 3?
+===============================================
+
+Release date: 2014-03-09
+
+Build
+-----
+
+- Issue #20757: The ensurepip helper for the Windows uninstaller now skips
+ uninstalling pip (rather than failing) if the user has updated pip to a
+ different version from the one bundled with ensurepip.
+
+
+
What's New in Python 3.4.0 release candidate 2?
===============================================