diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2012-04-01 10:56:03 -0400 |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2012-04-01 10:56:03 -0400 |
commit | 1ed3a1602e14450433663f5923972a73686379fd (patch) | |
tree | 4c8d45d945438070fdfb51eb4e8414a3e9c512ff /setuptools/tests/server.py | |
parent | 83a86217e2f1cf1259d4b1921b840a449f0dd32b (diff) | |
download | external_python_setuptools-1ed3a1602e14450433663f5923972a73686379fd.tar.gz external_python_setuptools-1ed3a1602e14450433663f5923972a73686379fd.tar.bz2 external_python_setuptools-1ed3a1602e14450433663f5923972a73686379fd.zip |
Cleaned up simulated index server, expanding documentation.
--HG--
branch : distribute
extra : rebase_source : b479cf805b766fa35c8e76c30c7725e93f56e6a2
Diffstat (limited to 'setuptools/tests/server.py')
-rw-r--r-- | setuptools/tests/server.py | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/setuptools/tests/server.py b/setuptools/tests/server.py index f4aaaa1c..2dcbe5af 100644 --- a/setuptools/tests/server.py +++ b/setuptools/tests/server.py @@ -2,7 +2,7 @@ """ import urllib2 import sys -from threading import Thread +import threading from BaseHTTPServer import HTTPServer from SimpleHTTPServer import SimpleHTTPRequestHandler @@ -17,29 +17,36 @@ class IndexServer(HTTPServer): # The index files should be located in setuptools/tests/indexes s.stop() """ - def __init__(self): - HTTPServer.__init__(self, ('', 0), SimpleHTTPRequestHandler) + def __init__(self, server_address=('', 0), + RequestHandlerClass=SimpleHTTPRequestHandler, + bind_and_activate=True): + HTTPServer.__init__(self, server_address, RequestHandlerClass, + bind_and_activate) self._run = True def serve(self): - while True: + while self._run: self.handle_request() - if not self._run: break def start(self): - self.thread = Thread(target=self.serve) + self.thread = threading.Thread(target=self.serve) self.thread.start() def stop(self): - """self.shutdown is not supported on python < 2.6""" + "Stop the server" + + # self.shutdown is not supported on python < 2.6, so just + # set _run to false, and make a request, causing it to + # terminate. self._run = False + url = 'http://127.0.0.1:%(server_port)s/' % vars(self) try: - if sys.version > '2.6': - urllib2.urlopen('http://127.0.0.1:%s/' % self.server_port, - None, 5) + if sys.version_info >= (2, 6): + urllib2.urlopen(url, timeout=5) else: - urllib2.urlopen('http://127.0.0.1:%s/' % self.server_port) + urllib2.urlopen(url) except urllib2.URLError: + # ignore any errors; all that's important is the request pass self.thread.join() |