diff Lib/test/test_httpservers.py @ 79664:ee34cb049a10

Issue #16088: BaseHTTPRequestHandler's send_error method includes a Content-Length header. Patch by Antoine Pitrou.
author Senthil Kumaran <senthil@uthcode.com>
date Wed, 10 Oct 2012 23:16:21 -0700
parents 7b71c093ae81
children ad51ed93377c
line wrap: on
line diff
--- a/Lib/test/test_httpservers.py	Wed Oct 10 17:49:00 2012 -0700
+++ b/Lib/test/test_httpservers.py	Wed Oct 10 23:16:21 2012 -0700
@@ -92,6 +92,9 @@
         def do_KEYERROR(self):
             self.send_error(999)
 
+        def do_NOTFOUND(self):
+            self.send_error(404)
+
         def do_CUSTOM(self):
             self.send_response(999)
             self.send_header('Content-Type', 'text/html')
@@ -211,6 +214,15 @@
         self.assertEqual(res.getheader('X-Special'), 'Dängerous Mind')
         self.assertEqual(res.read(), 'Ärger mit Unicode'.encode('utf-8'))
 
+    def test_error_content_length(self):
+        # Issue #16088: standard error responses should have a content-length
+        self.con.request('NOTFOUND', '/')
+        res = self.con.getresponse()
+        self.assertEqual(res.status, 404)
+        data = res.read()
+        import pdb; pdb.set_trace()
+        self.assertEqual(int(res.getheader('Content-Length')), len(data))
+
 
 class SimpleHTTPServerTestCase(BaseTestCase):
     class request_handler(NoLogRequestHandler, SimpleHTTPRequestHandler):