Page MenuHomePhabricator

Unsupported HTTP error codes
Closed, ResolvedPublicBUG REPORT

Description

List of steps to reproduce (step by step, including full links if applicable):
Some server response is not supported by http.HTTPStatus

https://docs.python.org/3.11/library/http.html?highlight=http#http.HTTPStatus

What happens?:
A status code 522 happened which is unofficial cloudflare Code:
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#Cloudflare

00
======================================================================
6701
ERROR: test_wikifur (tests.site_detect_tests.StandardVersionSiteTestCase)
6702
Test detection of MediaWiki sites for en.wikifur.com.
6703
----------------------------------------------------------------------
6704
Traceback (most recent call last):
6705
  File "C:\projects\pywikibot-g4xqx\tests\site_detect_tests.py", line 85, in test_wikifur
6706
    self.assertSite('https://en.wikifur.com/wiki/$1')
6707
  File "C:\projects\pywikibot-g4xqx\tests\site_detect_tests.py", line 36, in assertSite
6708
    self.assertIsInstance(MWSite(url), MWSite)
6709
  File "C:\projects\pywikibot-g4xqx\pywikibot\site_detect.py", line 45, in __init__
6710
    check_response(r)
6711
  File "C:\projects\pywikibot-g4xqx\pywikibot\site_detect.py", line 281, in check_response
6712
    raise ServerError(HTTPStatus(response.status_code).phrase)
6713
  File "c:\python38\lib\enum.py", line 339, in __call__
6714
    return cls.__new__(cls, value)
6715
  File "c:\python38\lib\enum.py", line 663, in __new__
6716
    raise ve_exc
6717
ValueError: 522 is not a valid HTTPStatus
6718
6719
----------------------------------------------------------------------
6720
Ran 1814 tests in 1210.883s
6721
6722
FAILED (errors=1, skipped=82, expected failures=11)

https://ci.appveyor.com/project/Ladsgroup/pywikibot-g4xqx/builds/41126786/job/mc9h7f05w7tff0l9#L6700

What should have happened instead?:
Either add a HTTPStatus subclass to pywikibot.comms.http or create a generic ServerError exception in that case instead of raising the ValueError.

Event Timeline

Xqt triaged this task as Medium priority.Oct 13 2021, 10:57 AM

Change 731116 had a related patch set uploaded (by Xqt; author: Xqt):

[pywikibot/core@master] [bugfix] Raise a generic ServerError if the http status code is unofficial

https://gerrit.wikimedia.org/r/731116

Change 731116 merged by jenkins-bot:

[pywikibot/core@master] [bugfix] Raise a generic ServerError if the http status code is unofficial

https://gerrit.wikimedia.org/r/731116