Fix TypeError on "setup.py upload --show-response".

This commit is contained in:
Antoine Pitrou 2013-12-22 18:13:51 +01:00
parent f20ea13996
commit 335a5128e5
5 changed files with 28 additions and 6 deletions

View file

@ -6,6 +6,7 @@ from test.support import run_unittest
from distutils.command import upload as upload_mod
from distutils.command.upload import upload
from distutils.core import Distribution
from distutils.log import INFO
from distutils.tests.test_config import PYPIRC, PyPIRCCommandTestCase
@ -48,6 +49,14 @@ class FakeOpen(object):
self.req = None
self.msg = 'OK'
def getheader(self, name, default=None):
return {
'content-type': 'text/plain; charset=utf-8',
}.get(name.lower(), default)
def read(self):
return b'xyzzy'
def getcode(self):
return 200
@ -108,10 +117,11 @@ class uploadTestCase(PyPIRCCommandTestCase):
# lets run it
pkg_dir, dist = self.create_dist(dist_files=dist_files)
cmd = upload(dist)
cmd.show_response = 1
cmd.ensure_finalized()
cmd.run()
# what did we send ?
# what did we send ?
headers = dict(self.last_open.req.headers)
self.assertEqual(headers['Content-length'], '2087')
self.assertTrue(headers['Content-type'].startswith('multipart/form-data'))
@ -120,6 +130,11 @@ class uploadTestCase(PyPIRCCommandTestCase):
'https://pypi.python.org/pypi')
self.assertIn(b'xxx', self.last_open.req.data)
# The PyPI response body was echoed
results = self.get_logs(INFO)
self.assertIn('xyzzy\n', results[-1])
def test_suite():
return unittest.makeSuite(uploadTestCase)