diff options
author | Tarek Ziadé <ziade.tarek@gmail.com> | 2009-03-31 20:53:55 (GMT) |
---|---|---|
committer | Tarek Ziadé <ziade.tarek@gmail.com> | 2009-03-31 20:53:55 (GMT) |
commit | e899b711df4754daec2eec88a1eeb9c9dfecc7c6 (patch) | |
tree | 12d8bcbd3357c4da9b152aebd77cb594ad83169a | |
parent | ca2b8d283ab133d5587f4faaff81a16a2a1a74ca (diff) | |
download | cpython-e899b711df4754daec2eec88a1eeb9c9dfecc7c6.zip cpython-e899b711df4754daec2eec88a1eeb9c9dfecc7c6.tar.gz cpython-e899b711df4754daec2eec88a1eeb9c9dfecc7c6.tar.bz2 |
more tests for the upload command
-rw-r--r-- | Lib/distutils/command/upload.py | 2 | ||||
-rw-r--r-- | Lib/distutils/tests/test_upload.py | 70 |
2 files changed, 64 insertions, 8 deletions
diff --git a/Lib/distutils/command/upload.py b/Lib/distutils/command/upload.py index df82e4c..74b0628 100644 --- a/Lib/distutils/command/upload.py +++ b/Lib/distutils/command/upload.py @@ -192,4 +192,4 @@ class upload(PyPIRCCommand): self.announce('Upload failed (%s): %s' % (r.status, r.reason), log.ERROR) if self.show_response: - print '-'*75, r.read(), '-'*75 + self.announce('-'*75, r.read(), '-'*75) diff --git a/Lib/distutils/tests/test_upload.py b/Lib/distutils/tests/test_upload.py index 3f8ca6d..f57a4a3 100644 --- a/Lib/distutils/tests/test_upload.py +++ b/Lib/distutils/tests/test_upload.py @@ -2,6 +2,7 @@ import sys import os import unittest +import httplib from distutils.command.upload import upload from distutils.core import Distribution @@ -18,17 +19,52 @@ index-servers = [server1] username:me """ +class Response(object): + def __init__(self, status=200, reason='OK'): + self.status = status + self.reason = reason +class FakeConnection(object): + + def __init__(self): + self.requests = [] + self.headers = [] + self.body = '' + + def __call__(self, netloc): + return self + + def connect(self): + pass + endheaders = connect + + def putrequest(self, method, url): + self.requests.append((method, url)) + + def putheader(self, name, value): + self.headers.append((name, value)) + + def send(self, body): + self.body = body + + def getresponse(self): + return Response() class uploadTestCase(PyPIRCCommandTestCase): + def setUp(self): + super(uploadTestCase, self).setUp() + self.old_class = httplib.HTTPConnection + self.conn = httplib.HTTPConnection = FakeConnection() + + def tearDown(self): + httplib.HTTPConnection = self.old_class + super(uploadTestCase, self).tearDown() + def test_finalize_options(self): # new format - f = open(self.rc, 'w') - f.write(PYPIRC) - f.close() - + self.write_file(self.rc, PYPIRC) dist = Distribution() cmd = upload(dist) cmd.finalize_options() @@ -39,9 +75,7 @@ class uploadTestCase(PyPIRCCommandTestCase): def test_saved_password(self): # file with no password - f = open(self.rc, 'w') - f.write(PYPIRC_NOPASSWORD) - f.close() + self.write_file(self.rc, PYPIRC_NOPASSWORD) # make sure it passes dist = Distribution() @@ -56,6 +90,28 @@ class uploadTestCase(PyPIRCCommandTestCase): cmd.finalize_options() self.assertEquals(cmd.password, 'xxx') + def test_upload(self): + tmp = self.mkdtemp() + path = os.path.join(tmp, 'xxx') + self.write_file(path) + command, pyversion, filename = 'xxx', '2.6', path + dist_files = [(command, pyversion, filename)] + self.write_file(self.rc, PYPIRC) + + # lets run it + pkg_dir, dist = self.create_dist(dist_files=dist_files) + cmd = upload(dist) + cmd.ensure_finalized() + cmd.run() + + # what did we send ? + headers = dict(self.conn.headers) + self.assertEquals(headers['Content-length'], '2086') + self.assert_(headers['Content-type'].startswith('multipart/form-data')) + + self.assertEquals(self.conn.requests, [('POST', '/pypi')]) + self.assert_('xxx' in self.conn.body) + def test_suite(): return unittest.makeSuite(uploadTestCase) |