[Python-checkins] cpython: use the HTTPS for pypi upload

benjamin.peterson python-checkins at python.org
Mon Mar 18 23:22:56 CET 2013


http://hg.python.org/cpython/rev/f86d46a580d8
changeset:   82739:f86d46a580d8
user:        Benjamin Peterson <benjamin at python.org>
date:        Mon Mar 18 15:20:56 2013 -0700
summary:
  use the HTTPS for pypi upload

files:
  Lib/distutils/config.py            |  11 ++++++++++-
  Lib/distutils/tests/test_config.py |   4 ++--
  Lib/distutils/tests/test_upload.py |   8 ++++----
  Misc/NEWS                          |   2 ++
  4 files changed, 18 insertions(+), 7 deletions(-)


diff --git a/Lib/distutils/config.py b/Lib/distutils/config.py
--- a/Lib/distutils/config.py
+++ b/Lib/distutils/config.py
@@ -21,7 +21,7 @@
 class PyPIRCCommand(Command):
     """Base command that knows how to handle the .pypirc file
     """
-    DEFAULT_REPOSITORY = 'http://pypi.python.org/pypi'
+    DEFAULT_REPOSITORY = 'https://pypi.python.org/pypi'
     DEFAULT_REALM = 'pypi'
     repository = None
     realm = None
@@ -83,6 +83,15 @@
                             current[key] = config.get(server, key)
                         else:
                             current[key] = default
+
+                    # work around people having "repository" for the "pypi"
+                    # section of their config set to the HTTP (rather than
+                    # HTTPS) URL
+                    if (server == 'pypi' and
+                        repository in (self.DEFAULT_REPOSITORY, 'pypi')):
+                        current['repository'] = self.DEFAULT_REPOSITORY
+                        return current
+
                     if (current['server'] == repository or
                         current['repository'] == repository):
                         return current
diff --git a/Lib/distutils/tests/test_config.py b/Lib/distutils/tests/test_config.py
--- a/Lib/distutils/tests/test_config.py
+++ b/Lib/distutils/tests/test_config.py
@@ -87,7 +87,7 @@
 
         config = list(sorted(config.items()))
         waited = [('password', 'secret'), ('realm', 'pypi'),
-                  ('repository', 'http://pypi.python.org/pypi'),
+                  ('repository', 'https://pypi.python.org/pypi'),
                   ('server', 'server1'), ('username', 'me')]
         self.assertEqual(config, waited)
 
@@ -96,7 +96,7 @@
         config = cmd._read_pypirc()
         config = list(sorted(config.items()))
         waited = [('password', 'secret'), ('realm', 'pypi'),
-                  ('repository', 'http://pypi.python.org/pypi'),
+                  ('repository', 'https://pypi.python.org/pypi'),
                   ('server', 'server-login'), ('username', 'tarek')]
         self.assertEqual(config, waited)
 
diff --git a/Lib/distutils/tests/test_upload.py b/Lib/distutils/tests/test_upload.py
--- a/Lib/distutils/tests/test_upload.py
+++ b/Lib/distutils/tests/test_upload.py
@@ -72,11 +72,11 @@
 
     def setUp(self):
         super(uploadTestCase, self).setUp()
-        self.old_class = httpclient.HTTPConnection
-        self.conn = httpclient.HTTPConnection = FakeConnection()
+        self.old_class = httpclient.HTTPSConnection
+        self.conn = httpclient.HTTPSConnection = FakeConnection()
 
     def tearDown(self):
-        httpclient.HTTPConnection = self.old_class
+        httpclient.HTTPSConnection = self.old_class
         super(uploadTestCase, self).tearDown()
 
     def test_finalize_options(self):
@@ -88,7 +88,7 @@
         cmd.finalize_options()
         for attr, waited in (('username', 'me'), ('password', 'secret'),
                              ('realm', 'pypi'),
-                             ('repository', 'http://pypi.python.org/pypi')):
+                             ('repository', 'https://pypi.python.org/pypi')):
             self.assertEqual(getattr(cmd, attr), waited)
 
     def test_saved_password(self):
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,8 @@
 Core and Builtins
 -----------------
 
+- Use the HTTPS PyPI url for upload, overriding any plain HTTP URL in pypirc.
+
 - Issue #16795: On the ast.arguments object, unify vararg with varargannotation
   and kwarg and kwargannotation. Change the column offset of ast.Attribute to be
   at the attribute name.

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list