summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTarek Ziadé <ziade.tarek@gmail.com>2009-03-31 20:53:55 (GMT)
committerTarek Ziadé <ziade.tarek@gmail.com>2009-03-31 20:53:55 (GMT)
commite899b711df4754daec2eec88a1eeb9c9dfecc7c6 (patch)
tree12d8bcbd3357c4da9b152aebd77cb594ad83169a
parentca2b8d283ab133d5587f4faaff81a16a2a1a74ca (diff)
downloadcpython-e899b711df4754daec2eec88a1eeb9c9dfecc7c6.zip
cpython-e899b711df4754daec2eec88a1eeb9c9dfecc7c6.tar.gz
cpython-e899b711df4754daec2eec88a1eeb9c9dfecc7c6.tar.bz2
more tests for the upload command
-rw-r--r--Lib/distutils/command/upload.py2
-rw-r--r--Lib/distutils/tests/test_upload.py70
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)