From 61ac612e78e4f2625977406fb6f366e0a644673a Mon Sep 17 00:00:00 2001 From: Ross Date: Sun, 15 Mar 2020 12:24:23 +0000 Subject: [PATCH] bpo-39507: Add HTTP status 418 "I'm a Teapot" (GH-18291) --- Doc/library/http.rst | 3 ++- Doc/whatsnew/3.9.rst | 4 ++-- Lib/http/__init__.py | 3 +++ Lib/test/test_httplib.py | 1 + .../next/Library/2020-01-31-14-24-05.bpo-39507.3oln1a.rst | 1 + 5 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2020-01-31-14-24-05.bpo-39507.3oln1a.rst diff --git a/Doc/library/http.rst b/Doc/library/http.rst index f120ada2091..14ee73363e6 100644 --- a/Doc/library/http.rst +++ b/Doc/library/http.rst @@ -99,6 +99,7 @@ Code Enum Name Details ``415`` ``UNSUPPORTED_MEDIA_TYPE`` HTTP/1.1 :rfc:`7231`, Section 6.5.13 ``416`` ``REQUESTED_RANGE_NOT_SATISFIABLE`` HTTP/1.1 Range Requests :rfc:`7233`, Section 4.4 ``417`` ``EXPECTATION_FAILED`` HTTP/1.1 :rfc:`7231`, Section 6.5.14 +``418`` ``IM_A_TEAPOT`` HTCPCP/1.0 :rfc:`2324`, Section 2.3.2 ``421`` ``MISDIRECTED_REQUEST`` HTTP/2 :rfc:`7540`, Section 9.1.2 ``422`` ``UNPROCESSABLE_ENTITY`` WebDAV :rfc:`4918`, Section 11.2 ``423`` ``LOCKED`` WebDAV :rfc:`4918`, Section 11.3 @@ -134,4 +135,4 @@ equal to the constant name (i.e. ``http.HTTPStatus.OK`` is also available as Added ``451 UNAVAILABLE_FOR_LEGAL_REASONS`` status code. .. versionadded:: 3.9 - Added ``103 EARLY_HINTS`` and ``425 TOO_EARLY`` status codes. + Added ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` and ``425 TOO_EARLY`` status codes. diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst index b078e791776..12e3f18408d 100644 --- a/Doc/whatsnew/3.9.rst +++ b/Doc/whatsnew/3.9.rst @@ -235,8 +235,8 @@ finalized by the garbage collector. (Contributed by Pablo Galindo in http ---- -HTTP status codes ``103 EARLY_HINTS`` and ``425 TOO_EARLY`` are added to -:class:`http.HTTPStatus`. (Contributed by Dong-hee Na in :issue:`39509`.) +HTTP status codes ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` and ``425 TOO_EARLY`` are added to +:class:`http.HTTPStatus`. (Contributed by Dong-hee Na in :issue:`39509` and Ross Rhodes in :issue:`39507`.) imaplib ------- diff --git a/Lib/http/__init__.py b/Lib/http/__init__.py index c8498be0de2..37be765349e 100644 --- a/Lib/http/__init__.py +++ b/Lib/http/__init__.py @@ -17,6 +17,7 @@ class HTTPStatus(IntEnum): * RFC 2774: An HTTP Extension Framework * RFC 7725: An HTTP Status Code to Report Legal Obstacles * RFC 7540: Hypertext Transfer Protocol Version 2 (HTTP/2) + * RFC 2324: Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) * RFC 8297: An HTTP Status Code for Indicating Hints * RFC 8470: Using Early Data in HTTP """ @@ -103,6 +104,8 @@ class HTTPStatus(IntEnum): 'Cannot satisfy request range') EXPECTATION_FAILED = (417, 'Expectation Failed', 'Expect condition could not be satisfied') + IM_A_TEAPOT = (418, 'I\'m a Teapot', + 'Server refuses to brew coffee because it is a teapot.') MISDIRECTED_REQUEST = (421, 'Misdirected Request', 'Server is not able to produce a response') UNPROCESSABLE_ENTITY = 422, 'Unprocessable Entity' diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index 7f4decc8fda..77d43359f30 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -1433,6 +1433,7 @@ class OfflineTest(TestCase): 'UNSUPPORTED_MEDIA_TYPE', 'REQUESTED_RANGE_NOT_SATISFIABLE', 'EXPECTATION_FAILED', + 'IM_A_TEAPOT', 'MISDIRECTED_REQUEST', 'UNPROCESSABLE_ENTITY', 'LOCKED', diff --git a/Misc/NEWS.d/next/Library/2020-01-31-14-24-05.bpo-39507.3oln1a.rst b/Misc/NEWS.d/next/Library/2020-01-31-14-24-05.bpo-39507.3oln1a.rst new file mode 100644 index 00000000000..6d49dabd38d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-01-31-14-24-05.bpo-39507.3oln1a.rst @@ -0,0 +1 @@ +Adding HTTP status 418 "I'm a Teapot" to HTTPStatus in http library. Patch by Ross Rhodes. \ No newline at end of file