jenkins-bot submitted this change.
[bugfix] Raise a generic ServerError if the http status code is unofficial
Bug: T293208
Change-Id: I3caf2d70803e25b73acada64b13281afbda50a90
---
M pywikibot/site_detect.py
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/pywikibot/site_detect.py b/pywikibot/site_detect.py
index 6868b52..0181f65 100644
--- a/pywikibot/site_detect.py
+++ b/pywikibot/site_detect.py
@@ -5,6 +5,8 @@
# Distributed under the terms of the MIT license.
#
import json
+import re
+
from contextlib import suppress
from html.parser import HTMLParser
from http import HTTPStatus
@@ -276,9 +278,22 @@
"""Raise ServerError if the response indicates a server error.
.. versionadded:: 3.0
+ .. versionchanged:: 7.0
+ Raise a generic ServerError if http status code is not
+ IANA-registered but unofficial code
+
+
"""
if response.status_code >= HTTPStatus.INTERNAL_SERVER_ERROR:
- raise ServerError(HTTPStatus(response.status_code).phrase)
+ try:
+ msg = HTTPStatus(response.status_code).phrase
+ except ValueError as err:
+ m = re.search(r'\d{3}', err.args[0], flags=re.ASCII)
+ if not m:
+ raise err
+ msg = 'Generic Server Error ({})'.format(m.group())
+
+ raise ServerError(msg)
if response.status_code == HTTPStatus.OK \
and SERVER_DB_ERROR_MSG in response.text:
To view, visit change 731116. To unsubscribe, or for help writing mail filters, visit settings.