[Python-checkins] python/dist/src/Lib/test test_httplib.py,1.11,1.12
jhylton@users.sourceforge.net
jhylton@users.sourceforge.net
Tue, 08 Jul 2003 05:37:00 -0700
Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1:/tmp/cvs-serv31377
Modified Files:
test_httplib.py
Log Message:
Fix SF bug 764095: Don't use network in test_httplib.
Index: test_httplib.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_httplib.py,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** test_httplib.py 5 May 2003 16:13:57 -0000 1.11
--- test_httplib.py 8 Jul 2003 12:36:58 -0000 1.12
***************
*** 1,14 ****
- from test.test_support import verify,verbose
import httplib
import StringIO
class FakeSocket:
! def __init__(self, text):
self.text = text
def makefile(self, mode, bufsize=None):
if mode != 'r' and mode != 'rb':
raise httplib.UnimplementedFileMode()
! return StringIO.StringIO(self.text)
# Collect output to a buffer so that we don't have to cope with line-ending
--- 1,35 ----
import httplib
import StringIO
+ import sys
+
+ from test.test_support import verify,verbose
class FakeSocket:
! def __init__(self, text, fileclass=StringIO.StringIO):
self.text = text
+ self.fileclass = fileclass
def makefile(self, mode, bufsize=None):
if mode != 'r' and mode != 'rb':
raise httplib.UnimplementedFileMode()
! return self.fileclass(self.text)
!
! class NoEOFStringIO(StringIO.StringIO):
! """Like StringIO, but raises AssertionError on EOF.
!
! This is used below to test that httplib doesn't try to read
! more from the underlying file than it should.
! """
! def read(self, n=-1):
! data = StringIO.StringIO.read(self, n)
! if data == '':
! raise AssertionError('caller tried to read past EOF')
! return data
!
! def readline(self, length=None):
! data = StringIO.StringIO.readline(self, length)
! if data == '':
! raise AssertionError('caller tried to read past EOF')
! return data
# Collect output to a buffer so that we don't have to cope with line-ending
***************
*** 16,21 ****
# and some platforms will strip them from the output file.
- import sys
-
def test():
buf = StringIO.StringIO()
--- 37,40 ----
***************
*** 79,94 ****
raise AssertionError, "multiple headers not combined properly"
! # test that the library doesn't attempt to read any data
! # from a head request
! conn = httplib.HTTPConnection("www.python.org")
! conn.connect()
! conn.request("HEAD", "/", headers={"Connection" : "keep-alive"})
! resp = conn.getresponse()
! if resp.status != 200:
! raise AssertionError, "Expected status 200, got %d" % resp.status
if resp.read() != "":
raise AssertionError, "Did not expect response from HEAD request"
resp.close()
- conn.close()
test()
--- 98,113 ----
raise AssertionError, "multiple headers not combined properly"
! # Test that the library doesn't attempt to read any data
! # from a HEAD request. (Tickles SF bug #622042.)
! sock = FakeSocket(
! 'HTTP/1.1 200 OK\r\n'
! 'Content-Length: 14432\r\n'
! '\r\n',
! NoEOFStringIO)
! resp = httplib.HTTPResponse(sock, 1, method="HEAD")
! resp.begin()
if resp.read() != "":
raise AssertionError, "Did not expect response from HEAD request"
resp.close()
test()