Commit a46cf12e authored by Nick Coghlan's avatar Nick Coghlan

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.
parent 26dd0ff0
...@@ -128,9 +128,10 @@ def _uninstall_helper(*, verbosity=0): ...@@ -128,9 +128,10 @@ def _uninstall_helper(*, verbosity=0):
# If the pip version doesn't match the bundled one, leave it alone # If the pip version doesn't match the bundled one, leave it alone
if pip.__version__ != _PIP_VERSION: 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)") "({!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() _require_ssl_for_pip()
_disable_pip_configuration_settings() _disable_pip_configuration_settings()
......
...@@ -196,10 +196,12 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase): ...@@ -196,10 +196,12 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase):
ensurepip._uninstall_helper() ensurepip._uninstall_helper()
self.run_pip.assert_not_called() 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 fake_pip("not a valid version"):
with self.assertRaises(RuntimeError): with test.support.captured_stderr() as stderr:
ensurepip._uninstall_helper() ensurepip._uninstall_helper()
warning = stderr.getvalue().strip()
self.assertIn("only uninstall a matching version", warning)
self.run_pip.assert_not_called() self.run_pip.assert_not_called()
......
...@@ -2,6 +2,20 @@ ...@@ -2,6 +2,20 @@
Python News 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? What's New in Python 3.4.0 release candidate 2?
=============================================== ===============================================
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment