[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()