[Python-checkins] python/dist/src/Lib/test test_httplib.py,1.11,1.12

jhylton@users.sourceforge.net jhylton@users.sourceforge.net
2003年7月08日 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()

AltStyle によって変換されたページ (->オリジナル) /