summaryrefslogtreecommitdiff
path: root/webtest/http.py
diff options
context:
space:
mode:
authorLaurence Rowe <laurence@lrowe.co.uk>2013-03-27 19:47:06 -0700
committerLaurence Rowe <laurence@lrowe.co.uk>2013-03-27 19:47:06 -0700
commitb95084fe9fb9ee2c8cc6a0395c075c86c4e8105f (patch)
treefcefc16140ad7bc41ebbde53ee3ae0b9b99c1370 /webtest/http.py
parentd7839348731cefe3f987e0133ad334944983600c (diff)
downloadwebtest-b95084fe9fb9ee2c8cc6a0395c075c86c4e8105f.tar.gz
Ignore socket.error following StopableWSGIServer.shutdown.
Diffstat (limited to 'webtest/http.py')
-rw-r--r--webtest/http.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/webtest/http.py b/webtest/http.py
index 4ef0cf6..14eea84 100644
--- a/webtest/http.py
+++ b/webtest/http.py
@@ -49,6 +49,8 @@ class StopableWSGIServer(WSGIServer):
server host and port.
"""
+ was_shutdown = False
+
def __init__(self, application, *args, **kwargs):
super(StopableWSGIServer, self).__init__(self.wrapper, *args, **kwargs)
self.runner = None
@@ -81,11 +83,16 @@ class StopableWSGIServer(WSGIServer):
def run(self):
"""Run the server"""
- self.asyncore.loop(.5, map=self._map)
+ try:
+ self.asyncore.loop(.5, map=self._map)
+ except socket.error:
+ if not self.was_shutdown:
+ raise
def shutdown(self):
"""Shutdown the server"""
# avoid showing traceback related to asyncore
+ self.was_shutdown = True
self.logger.setLevel(logging.FATAL)
while self._map:
triggers = list(self._map.values())