Index: Lib/test/test_urllib2_localnet.py =================================================================== --- Lib/test/test_urllib2_localnet.py (revision 69446) +++ Lib/test/test_urllib2_localnet.py (working copy) @@ -310,7 +310,7 @@ self.send_response(response_code) for (header, value) in headers: - self.send_header(header, value % self.port) + self.send_header(header, value % {'port':self.port}) if body: self.send_header("Content-type", "text/plain") self.end_headers() @@ -342,7 +342,10 @@ def urlopen(self, url, data=None): f = urllib.request.urlopen(url, data) - result = f.read() + try: + result = f.read() + except http.client.IncompleteRead as iread: + result = iread.partial f.close() return result @@ -361,7 +364,8 @@ def test_redirection(self): expected_response = b"We got here..." responses = [ - (302, [("Location", "http://localhost:%s/somewhere_else")], ""), + (302, [("Location", "http://localhost:%(port)s/somewhere_else")], + ""), (200, [], expected_response) ] @@ -370,6 +374,19 @@ self.assertEquals(data, expected_response) self.assertEquals(handler.requests, ["/", "/somewhere_else"]) + def test_chunked(self): + expected_response = b"hello world" + chunked_start = ( + b'a\r\n' + b'hello worl\r\n' + b'1\r\n' + b'd\r\n' + ) + response = [(200, [("Transfer-Encoding", "chunked")], chunked_start)] + handler = self.start_server(response) + data = self.urlopen("http://localhost:%s/" % handler.port) + self.assertEquals(data, expected_response) + def test_404(self): expected_response = b"Bad bad bad..." handler = self.start_server([(404, [], expected_response)])