[Python-checkins] distutils2: removed pypi_server's blocking behaviour (mostly)

tarek.ziade python-checkins at python.org
Sun Jul 4 11:48:39 CEST 2010


tarek.ziade pushed e415685da4c5 to distutils2:
http://hg.python.org/distutils2/rev/e415685da4c5
changeset: 301:e415685da4c5
user: Konrad Delong <konryd at gmail.com>
date: Sat Jun 05 12:51:51 2010 +0200
summary: removed pypi_server's blocking behaviour (mostly)
files: src/distutils2/tests/pypi_server.py, src/distutils2/tests/test_pypi_server.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
@@ -12,8 +12,8 @@
 import urllib2
 from BaseHTTPServer import HTTPServer
 from SimpleHTTPServer import SimpleHTTPRequestHandler
-from wsgiref.simple_server import make_server
 import os.path
+import select
 
 PYPI_DEFAULT_STATIC_PATH = os.path.dirname(os.path.abspath(__file__)) + "/pypiserver"
 
@@ -61,7 +61,7 @@
 self.httpd = HTTPServer(('', 0), PyPIRequestHandler) 
 self.httpd.RequestHandlerClass.log_request = lambda *_: None
 self.httpd.RequestHandlerClass.pypi_server = self
- self.address = self.httpd.server_address
+ self.address = (self.httpd.server_name, self.httpd.server_port)
 self.request_queue = Queue.Queue()
 self._requests = []
 self.default_response_status = 200
@@ -77,10 +77,10 @@
 
 def run(self):
 # loop because we can't stop it otherwise, for python < 2.6
- while True:
- self.httpd.handle_request()
- if not self._run:
- break
+ while self._run:
+ r, w, e = select.select([self.httpd], [], [], 0.5)
+ if r:
+ self.httpd.handle_request()
 
 def stop(self):
 """self shutdown is not supported for python < 2.6"""
diff --git a/src/distutils2/tests/test_pypi_server.py b/src/distutils2/tests/test_pypi_server.py
--- a/src/distutils2/tests/test_pypi_server.py
+++ b/src/distutils2/tests/test_pypi_server.py
@@ -60,6 +60,7 @@
 
 # and another one in another root path
 self.assertTrue(uses_local_files_for(server, "/external/index.html"))
+ server.stop()
 
 
 def test_suite():
--
Repository URL: http://hg.python.org/distutils2


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /