summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBerker Peksag <berker.peksag@gmail.com>2016-06-10 23:00:52 +0300
committerBerker Peksag <berker.peksag@gmail.com>2016-06-10 23:00:52 +0300
commit10a1074a40e74dcc88ee861e6db8bdd9adbcf9d0 (patch)
tree85e9ba0497072a5d61bbcba269ef6efed481f243
parente7e05a0f2d633e62b815b3300e6a1585a1507a50 (diff)
downloadcpython-10a1074a40e74dcc88ee861e6db8bdd9adbcf9d0.tar.gz
Issue #20900: distutils register command now decodes HTTP responses correctly
Initial patch by ingrid.
-rw-r--r--Lib/distutils/command/register.py6
-rw-r--r--Lib/distutils/tests/test_register.py14
-rw-r--r--Lib/distutils/tests/test_upload.py2
-rw-r--r--Misc/NEWS3
4 files changed, 21 insertions, 4 deletions
diff --git a/Lib/distutils/command/register.py b/Lib/distutils/command/register.py
index b49f86fe58..86343c8017 100644
--- a/Lib/distutils/command/register.py
+++ b/Lib/distutils/command/register.py
@@ -296,9 +296,9 @@ Your selection [default 1]: ''', log.INFO)
result = 500, str(e)
else:
if self.show_response:
- data = result.read()
+ data = self._read_pypi_response(result)
result = 200, 'OK'
if self.show_response:
- dashes = '-' * 75
- self.announce('%s%r%s' % (dashes, data, dashes))
+ msg = '\n'.join(('-' * 75, data, '-' * 75))
+ self.announce(msg, log.INFO)
return result
diff --git a/Lib/distutils/tests/test_register.py b/Lib/distutils/tests/test_register.py
index 6180133994..01acf2375f 100644
--- a/Lib/distutils/tests/test_register.py
+++ b/Lib/distutils/tests/test_register.py
@@ -301,6 +301,20 @@ class RegisterTestCase(PyPIRCCommandTestCase):
results = self.get_logs(INFO)
self.assertEqual(results, ['running check', 'xxx'])
+ def test_show_response(self):
+ # test that the --show-response option return a well formatted response
+ cmd = self._get_cmd()
+ inputs = Inputs('1', 'tarek', 'y')
+ register_module.input = inputs.__call__
+ cmd.show_response = 1
+ try:
+ cmd.run()
+ finally:
+ del register_module.input
+
+ results = self.get_logs(INFO)
+ self.assertEqual(results[3], 75 * '-' + '\nxxx\n' + 75 * '-')
+
def test_suite():
return unittest.makeSuite(RegisterTestCase)
diff --git a/Lib/distutils/tests/test_upload.py b/Lib/distutils/tests/test_upload.py
index 19193d5b05..964aac7e80 100644
--- a/Lib/distutils/tests/test_upload.py
+++ b/Lib/distutils/tests/test_upload.py
@@ -140,7 +140,7 @@ class uploadTestCase(PyPIRCCommandTestCase):
# The PyPI response body was echoed
results = self.get_logs(INFO)
- self.assertIn('xyzzy\n', results[-1])
+ self.assertEqual(results[-1], 75 * '-' + '\nxyzzy\n' + 75 * '-')
def test_upload_fails(self):
self.next_msg = "Not Found"
diff --git a/Misc/NEWS b/Misc/NEWS
index 6de4c924db..e8fd99068c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -139,6 +139,9 @@ Core and Builtins
Library
-------
+- Issue #20900: distutils register command now decodes HTTP responses
+ correctly. Initial patch by ingrid.
+
- A new version of typing.py provides several new classes and
features: @overload outside stubs, Reversible, DefaultDict, Text,
ContextManager, Type[], NewType(), TYPE_CHECKING, and numerous bug