Fix for SF bug 661340: test_httplib fails on the mac.
The test no longer produces output with \r\n in it.
This commit is contained in:
parent
b1049e8eca
commit
ba60319a78
|
@ -8,3 +8,4 @@ InvalidURL raised as expected
|
|||
reply: 'HTTP/1.1 200 OK\r\n'
|
||||
header: Set-Cookie: Customer="WILE_E_COYOTE"; Version="1"; Path="/acme"
|
||||
header: Set-Cookie: Part_Number="Rocket_Launcher_0001"; Version="1"; Path="/acme"
|
||||
|
||||
|
|
|
@ -11,48 +11,71 @@ class FakeSocket:
|
|||
raise httplib.UnimplementedFileMode()
|
||||
return StringIO.StringIO(self.text)
|
||||
|
||||
# Test HTTP status lines
|
||||
# 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.
|
||||
|
||||
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()
|
||||
import sys
|
||||
|
||||
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"
|
||||
|
||||
# Check invalid host_port
|
||||
|
||||
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"
|
||||
else:
|
||||
print "Expect InvalidURL"
|
||||
sys.stdout = buf
|
||||
_test()
|
||||
finally:
|
||||
sys.stdout = _stdout
|
||||
|
||||
# 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 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 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()
|
||||
|
|
Loading…
Reference in New Issue