summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_httplib.py
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2003-01-23 18:02:20 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>2003-01-23 18:02:20 (GMT)
commitba60319a78ed6be5a57d5288e0e131c4bc6c8cf8 (patch)
tree9c62634d049527c3ab75363978b18582fab01d3d /Lib/test/test_httplib.py
parentb1049e8eca13f6e2634a8eba119f7c5ce5a6b1aa (diff)
downloadcpython-ba60319a78ed6be5a57d5288e0e131c4bc6c8cf8.zip
cpython-ba60319a78ed6be5a57d5288e0e131c4bc6c8cf8.tar.gz
cpython-ba60319a78ed6be5a57d5288e0e131c4bc6c8cf8.tar.bz2
Fix for SF bug 661340: test_httplib fails on the mac.
The test no longer produces output with \r\n in it.
Diffstat (limited to 'Lib/test/test_httplib.py')
-rw-r--r--Lib/test/test_httplib.py105
1 files changed, 64 insertions, 41 deletions
diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py
index 4d8dbc8..8764455 100644
--- a/Lib/test/test_httplib.py
+++ b/Lib/test/test_httplib.py
@@ -11,48 +11,71 @@ class FakeSocket:
raise httplib.UnimplementedFileMode()
return StringIO.StringIO(self.text)
-# Test HTTP status lines
-
-body = "HTTP/1.1 200 Ok\r\n\r\nText"
-sock = FakeSocket(body)
-resp = httplib.HTTPResponse(sock, 1)
-resp.begin()
-print resp.read()
-resp.close()
-
-body = "HTTP/1.1 400.100 Not Ok\r\n\r\nText"
-sock = FakeSocket(body)
-resp = httplib.HTTPResponse(sock, 1)
-try:
- resp.begin()
-except httplib.BadStatusLine:
- print "BadStatusLine raised as expected"
-else:
- print "Expect BadStatusLine"
+# Collect output to a buffer so that we don't have to cope with line-ending
+# issues across platforms. Specifically, the headers will have \r\n pairs
+# and some platforms will strip them from the output file.
-# Check invalid host_port
+import sys
-for hp in ("www.python.org:abc", "www.python.org:"):
+def test():
+ buf = StringIO.StringIO()
+ _stdout = sys.stdout
try:
- h = httplib.HTTP(hp)
- except httplib.InvalidURL:
- print "InvalidURL raised as expected"
+ sys.stdout = buf
+ _test()
+ finally:
+ sys.stdout = _stdout
+
+ # print individual lines with endings stripped
+ s = buf.getvalue()
+ for line in s.split("\n"):
+ print line.strip()
+
+def _test():
+ # Test HTTP status lines
+
+ body = "HTTP/1.1 200 Ok\r\n\r\nText"
+ sock = FakeSocket(body)
+ resp = httplib.HTTPResponse(sock, 1)
+ resp.begin()
+ print resp.read()
+ resp.close()
+
+ body = "HTTP/1.1 400.100 Not Ok\r\n\r\nText"
+ sock = FakeSocket(body)
+ resp = httplib.HTTPResponse(sock, 1)
+ try:
+ resp.begin()
+ except httplib.BadStatusLine:
+ print "BadStatusLine raised as expected"
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"
+ print "Expect BadStatusLine"
+
+ # Check invalid host_port
+
+ for hp in ("www.python.org:abc", "www.python.org:"):
+ try:
+ h = httplib.HTTP(hp)
+ except httplib.InvalidURL:
+ print "InvalidURL raised as expected"
+ 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"
+
+test()