]> granicus.if.org Git - python/commitdiff
Fix several failing tests in test_urllib2net.
authorJeremy Hylton <jeremy@alum.mit.edu>
Wed, 8 Aug 2007 17:36:33 +0000 (17:36 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Wed, 8 Aug 2007 17:36:33 +0000 (17:36 +0000)
The HTTPResponse object is being passed to BufferedReader, but it
wasn't designed to be used that way.  These changes extend the hacks
that have already been made in urllib2 to get the tests to pass.

The hacks need to be removed and proper support for use with the io
library.  That's a project for another day.

Lib/httplib.py
Lib/urllib2.py

index 0931446e59d80f3c59630be511dc307df8e87a1a..fd66cfd3c9467210cae3711417a3ea5f81bf3f3b 100644 (file)
@@ -499,6 +499,20 @@ class HTTPResponse:
             self.fp.close()
             self.fp = None
 
+    # These implementations are for the benefit of io.BufferedReader.
+
+    # XXX This class should probably be revised to act more like
+    # the "raw stream" that BufferedReader expects.
+
+    @property
+    def closed(self):
+        return self.isclosed()
+
+    def flush(self):
+        self.fp.flush()
+
+    # End of "raw stream" methods
+
     def isclosed(self):
         # NOTE: it is possible that we will not ever call self.close(). This
         #       case occurs when will_close is TRUE, length is None, and we
index c8bfe3830dadafbae69c1d956d7c7c18154ed506..448f2a82614915f746ff062ae8bd00fa228883c5 100644 (file)
@@ -1072,6 +1072,10 @@ class AbstractHTTPHandler(BaseHandler):
         # Pick apart the HTTPResponse object to get the addinfourl
         # object initialized properly.
 
+        # XXX Should an HTTPResponse object really be passed to
+        # BufferedReader?  If so, we should change httplib to support
+        # this use directly.
+
         # Add some fake methods to the reader to satisfy BufferedReader.
         r.readable = lambda: True
         r.writable = r.seekable = lambda: False
@@ -1283,7 +1287,6 @@ class FTPHandler(BaseHandler):
 
     def connect_ftp(self, user, passwd, host, port, dirs, timeout):
         fw = ftpwrapper(user, passwd, host, port, dirs, timeout)
-##        fw.ftp.set_debuglevel(1)
         return fw
 
 class CacheFTPHandler(FTPHandler):