[Python-checkins] python/dist/src/Lib/test test_httplib.py,1.5,1.6

jhylton@users.sourceforge.net jhylton@users.sourceforge.net
Sun, 07 Jul 2002 09:51:39 -0700


Update of /cvsroot/python/python/dist/src/Lib/test
In directory usw-pr-cvs1:/tmp/cvs-serv14230/test

Modified Files:
	test_httplib.py 
Log Message:
Fix for SF bug #432621: httplib: multiple Set-Cookie headers

If multiple header fields with the same name occur, they are combined
according to the rules in RFC 2616 sec 4.2:

Appending each subsequent field-value to the first, each separated by
a comma. The order in which header fields with the same field-name are
received is significant to the interpretation of the combined field
value.



Index: test_httplib.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_httplib.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** test_httplib.py	28 Jun 2002 23:54:30 -0000	1.5
--- test_httplib.py	7 Jul 2002 16:51:37 -0000	1.6
***************
*** 16,20 ****
  body = "HTTP/1.1 200 Ok\r\n\r\nText"
  sock = FakeSocket(body)
! resp = httplib.HTTPResponse(sock,1)
  resp._begin()
  print resp.read()
--- 16,20 ----
  body = "HTTP/1.1 200 Ok\r\n\r\nText"
  sock = FakeSocket(body)
! resp = httplib.HTTPResponse(sock, 1)
  resp._begin()
  print resp.read()
***************
*** 23,27 ****
  body = "HTTP/1.1 400.100 Not Ok\r\n\r\nText"
  sock = FakeSocket(body)
! resp = httplib.HTTPResponse(sock,1)
  try:
      resp._begin()
--- 23,27 ----
  body = "HTTP/1.1 400.100 Not Ok\r\n\r\nText"
  sock = FakeSocket(body)
! resp = httplib.HTTPResponse(sock, 1)
  try:
      resp._begin()
***************
*** 40,41 ****
--- 40,59 ----
      else:
          print "Expect InvalidURL"
+ 
+ # test response with multiple message headers with the same field name.
+ text = ('HTTP/1.1 200 OK\r\n'
+         'Set-Cookie: Customer="WILE_E_COYOTE"; Version="1"; Path="/acme"\r\n'
+         'Set-Cookie: Part_Number="Rocket_Launcher_0001"; Version="1";'
+         ' Path="/acme"\r\n'
+         '\r\n'
+         'No body\r\n')
+ hdr = ('Customer="WILE_E_COYOTE"; Version="1"; Path="/acme"'
+        ', '
+        'Part_Number="Rocket_Launcher_0001"; Version="1"; Path="/acme"')
+ s = FakeSocket(text)
+ r = httplib.HTTPResponse(s, 1)
+ r._begin()
+ cookies = r.getheader("Set-Cookie")
+ if cookies != hdr:
+     raise AssertionError, "multiple headers not combined properly"
+