summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2007-08-08 17:36:33 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>2007-08-08 17:36:33 (GMT)
commitdf5f6b551ad89257a579682114ae9f2ab1d3755e (patch)
treea05db2f1a62dd2d879de945b8938cb35c010ca41 /Lib
parent6a10e02aa644ad7f9c1f2ab6dd249c1a414c0c8b (diff)
downloadcpython-df5f6b551ad89257a579682114ae9f2ab1d3755e.zip
cpython-df5f6b551ad89257a579682114ae9f2ab1d3755e.tar.gz
cpython-df5f6b551ad89257a579682114ae9f2ab1d3755e.tar.bz2
Fix several failing tests in test_urllib2net.
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.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/httplib.py14
-rw-r--r--Lib/urllib2.py5
2 files changed, 18 insertions, 1 deletions
diff --git a/Lib/httplib.py b/Lib/httplib.py
index 0931446..fd66cfd 100644
--- a/Lib/httplib.py
+++ b/Lib/httplib.py
@@ -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
diff --git a/Lib/urllib2.py b/Lib/urllib2.py
index c8bfe38..448f2a8 100644
--- a/Lib/urllib2.py
+++ b/Lib/urllib2.py
@@ -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):