aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/tests/server.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/tests/server.py')
-rw-r--r--setuptools/tests/server.py26
1 files changed, 5 insertions, 21 deletions
diff --git a/setuptools/tests/server.py b/setuptools/tests/server.py
index 099e8b19..1fee0563 100644
--- a/setuptools/tests/server.py
+++ b/setuptools/tests/server.py
@@ -1,10 +1,10 @@
"""Basic http server for tests to simulate PyPI or custom indexes
"""
-import sys
+
import time
import threading
-from six.moves import BaseHTTPServer, SimpleHTTPServer, urllib
+from six.moves import BaseHTTPServer, SimpleHTTPServer
class IndexServer(BaseHTTPServer.HTTPServer):
"""Basic single-threaded http server simulating a package index
@@ -23,12 +23,8 @@ class IndexServer(BaseHTTPServer.HTTPServer):
RequestHandlerClass)
self._run = True
- def serve(self):
- while self._run:
- self.handle_request()
-
def start(self):
- self.thread = threading.Thread(target=self.serve)
+ self.thread = threading.Thread(target=self.serve_forever)
self.thread.start()
def stop(self):
@@ -37,19 +33,7 @@ class IndexServer(BaseHTTPServer.HTTPServer):
# Let the server finish the last request and wait for a new one.
time.sleep(0.1)
- # 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_info >= (2, 6):
- urllib.request.urlopen(url, timeout=5)
- else:
- urllib.request.urlopen(url)
- except urllib.error.URLError:
- # ignore any errors; all that's important is the request
- pass
+ self.shutdown()
self.thread.join()
self.socket.close()
@@ -78,6 +62,6 @@ class MockServer(BaseHTTPServer.HTTPServer, threading.Thread):
def run(self):
self.serve_forever()
+ @property
def url(self):
return 'http://localhost:%(server_port)s/' % vars(self)
- url = property(url)