LiveServerThread handles caught exceptions incorrectly
In django.test.testcases.LiveServerThread.run a WSGIServerException is caught and the code expects it to have an errno attribute. However not WSGIServerException is a subclass of Exception and thus not guaranteed to have the errno attribute. The following short patch avoids this problem:
diff --git a/django/test/testcases.py b/django/test/testcases.py
index 3bb40a5..ef4c8118 100644
--- a/django/test/testcases.py
+++ b/django/test/testcases.py
@@ -1022,7 +1022,7 @@ class LiveServerThread(threading.Thread):
(self.host, port), QuietWSGIRequestHandler)
except WSGIServerException as e:
if (index + 1 < len(self.possible_ports) and
- e.args[0].errno == errno.EADDRINUSE):
+ getattr(e.args[0], 'errno', 0) == errno.EADDRINUSE):
# This port is already in use, so we go on and try with
# the next one in the list.
continue
Change History
(3)
Description: |
modified (diff)
|
Triage Stage: |
Unreviewed → Accepted
|
Resolution: |
→ fixed
|
Status: |
new → closed
|
Thanks for the report. I've fixed the formatting – please use 'Preview' in the future.