summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2005-07-14 06:40:47 (GMT)
committerGeorg Brandl <georg@python.org>2005-07-14 06:40:47 (GMT)
commit5c5fe2f44563733cf6508566452ce26e66b80bba (patch)
treea33ece00f14e57d28e68d6bd1a88fd6448d79f74 /Lib
parentc1f5fff2b7c51fd5420a4dfb8a2b1c297c993c10 (diff)
downloadcpython-5c5fe2f44563733cf6508566452ce26e66b80bba.zip
cpython-5c5fe2f44563733cf6508566452ce26e66b80bba.tar.gz
cpython-5c5fe2f44563733cf6508566452ce26e66b80bba.tar.bz2
RFE [ 1216944 ] Add Error Code Dictionary to urllib2
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_urllib2.py4
-rw-r--r--Lib/urllib2.py49
2 files changed, 53 insertions, 0 deletions
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
index c68d244..1c0b7da 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -40,6 +40,10 @@ class TrivialTests(unittest.TestCase):
buf = f.read()
f.close()
+
+ def test_statudict(self):
+ # test the new-in-2.5 httpresponses dictionary
+ self.assertEquals(urllib2.httpresponses[404], "Not Found")
class MockOpener:
diff --git a/Lib/urllib2.py b/Lib/urllib2.py
index 13c1f1e..7202507 100644
--- a/Lib/urllib2.py
+++ b/Lib/urllib2.py
@@ -1293,3 +1293,52 @@ class OpenerFactory:
if inspect.isclass(ph):
ph = ph()
opener.add_handler(ph)
+
+# Mapping status codes to official W3C names
+httpresponses = {
+ 100: 'Continue',
+ 101: 'Switching Protocols',
+
+ 200: 'OK',
+ 201: 'Created',
+ 202: 'Accepted',
+ 203: 'Non-Authoritative Information',
+ 204: 'No Content',
+ 205: 'Reset Content',
+ 206: 'Partial Content',
+
+ 300: 'Multiple Choices',
+ 301: 'Moved Permanently',
+ 302: 'Found',
+ 303: 'See Other',
+ 304: 'Not Modified',
+ 305: 'Use Proxy',
+ 306: '(Unused)',
+ 307: 'Temporary Redirect',
+
+ 400: 'Bad Request',
+ 401: 'Unauthorized',
+ 402: 'Payment Required',
+ 403: 'Forbidden',
+ 404: 'Not Found',
+ 405: 'Method Not Allowed',
+ 406: 'Not Acceptable',
+ 407: 'Proxy Authentication Required',
+ 408: 'Request Timeout',
+ 409: 'Conflict',
+ 410: 'Gone',
+ 411: 'Length Required',
+ 412: 'Precondition Failed',
+ 413: 'Request Entity Too Large',
+ 414: 'Request-URI Too Long',
+ 415: 'Unsupported Media Type',
+ 416: 'Requested Range Not Satisfiable',
+ 417: 'Expectation Failed',
+
+ 500: 'Internal Server Error',
+ 501: 'Not Implemented',
+ 502: 'Bad Gateway',
+ 503: 'Service Unavailable',
+ 504: 'Gateway Timeout',
+ 505: 'HTTP Version Not Supported',
+}