diff options
| author | Laurence Rowe <laurence@lrowe.co.uk> | 2013-03-27 19:47:06 -0700 |
|---|---|---|
| committer | Laurence Rowe <laurence@lrowe.co.uk> | 2013-03-27 19:47:06 -0700 |
| commit | b95084fe9fb9ee2c8cc6a0395c075c86c4e8105f (patch) | |
| tree | fcefc16140ad7bc41ebbde53ee3ae0b9b99c1370 /webtest/http.py | |
| parent | d7839348731cefe3f987e0133ad334944983600c (diff) | |
| download | webtest-b95084fe9fb9ee2c8cc6a0395c075c86c4e8105f.tar.gz | |
Ignore socket.error following StopableWSGIServer.shutdown.
Diffstat (limited to 'webtest/http.py')
| -rw-r--r-- | webtest/http.py | 9 |
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()) |
