[Python-checkins] distutils2: refactored the pypi server a little bit (also, moved the PyPIServerTestCase to
tarek.ziade
python-checkins at python.org
Sun Jul 4 11:48:38 CEST 2010
tarek.ziade pushed ed1fc0d836b6 to distutils2:
http://hg.python.org/distutils2/rev/ed1fc0d836b6
changeset: 273:ed1fc0d836b6
user: Konrad Delong <konryd at gmail.com>
date: Mon May 17 01:08:19 2010 +0200
summary: refactored the pypi server a little bit (also, moved the PyPIServerTestCase to that file)
files: src/distutils2/tests/pypi_server.py, src/distutils2/tests/test_upload.py, src/distutils2/tests/test_upload_docs.py
diff --git a/src/distutils2/tests/pypi_server.py b/src/distutils2/tests/pypi_server.py
--- a/src/distutils2/tests/pypi_server.py
+++ b/src/distutils2/tests/pypi_server.py
@@ -1,6 +1,17 @@
-import Queue, threading, time
+import Queue, threading, time, unittest2
from wsgiref.simple_server import make_server
+class PyPIServerTestCase(unittest2.TestCase):
+
+ def setUp(self):
+ super(PyPIServerTestCase, self).setUp()
+ self.pypi = PyPIServer()
+ self.pypi.start()
+
+ def tearDown(self):
+ super(PyPIServerTestCase, self).tearDown()
+ self.pypi.stop()
+
class PyPIServer(threading.Thread):
"""Thread that wraps a wsgi app"""
def __init__(self):
@@ -10,6 +21,9 @@
self.address = self.httpd.server_address
self.request_queue = Queue.Queue()
self._requests = []
+ self._default_response_status = "200 OK"
+ self._default_response_headers = [('Content-type', 'text/plain')]
+ self._default_response_data = ["hello"]
def run(self):
self.httpd.serve_forever()
@@ -19,15 +33,21 @@
self.join()
def pypi_app(self, environ, start_response):
- status = '200 OK' # HTTP Status
- headers = [('Content-type', 'text/plain')] # HTTP Headers
- start_response(status, headers)
+ # record the request
if environ.get("CONTENT_LENGTH"):
request_data = environ.pop('wsgi.input').read(int(environ['CONTENT_LENGTH']))
else:
request_data = environ.pop('wsgi.input').read()
self.request_queue.put((environ, request_data))
- return ["hello"]
+ # send back a response
+ status, headers, data = self.get_next_response()
+ start_response(status, headers)
+ return data
+
+ def get_next_response(self):
+ return (self._default_response_status,
+ self._default_response_headers,
+ self._default_response_data)
@property
def requests(self):
diff --git a/src/distutils2/tests/test_upload.py b/src/distutils2/tests/test_upload.py
--- a/src/distutils2/tests/test_upload.py
+++ b/src/distutils2/tests/test_upload.py
@@ -5,7 +5,7 @@
from distutils2.command.upload import upload
from distutils2.core import Distribution
-from distutils2.tests.pypi_server import PyPIServer
+from distutils2.tests.pypi_server import PyPIServer, PyPIServerTestCase
from distutils2.tests.test_config import PYPIRC, PyPIRCCommandTestCase
@@ -19,16 +19,6 @@
username:me
"""
-class PyPIServerTestCase(unittest2.TestCase):
-
- def setUp(self):
- super(PyPIServerTestCase, self).setUp()
- self.pypi = PyPIServer()
- self.pypi.start()
-
- def tearDown(self):
- self.pypi.stop()
-
class UploadTestCase(PyPIServerTestCase, PyPIRCCommandTestCase):
def test_finalize_options(self):
diff --git a/src/distutils2/tests/test_upload_docs.py b/src/distutils2/tests/test_upload_docs.py
--- a/src/distutils2/tests/test_upload_docs.py
+++ b/src/distutils2/tests/test_upload_docs.py
@@ -8,8 +8,7 @@
from distutils2.core import Distribution
from distutils2.tests import support
-from distutils2.tests.pypi_server import PyPIServer
-from distutils2.tests.test_upload import PyPIServerTestCase
+from distutils2.tests.pypi_server import PyPIServer, PyPIServerTestCase
from distutils2.tests.test_config import PYPIRC, PyPIRCCommandTestCase
@@ -108,6 +107,9 @@
def test_honours_dry_run(self):
pass
+ def test_reads_pypirc_data(self):
+ pass
+
def test_suite():
return unittest2.makeSuite(UploadDocsTestCase)
--
Repository URL: http://hg.python.org/distutils2
More information about the Python-checkins
mailing list