mirror of https://github.com/python/cpython.git
Fix for issue5040. Adding test for Content-Length
This commit is contained in:
parent
2ecd3c36b5
commit
20d114cad2
|
@ -580,7 +580,7 @@ def handle_get(self):
|
||||||
'explain' : explain
|
'explain' : explain
|
||||||
}
|
}
|
||||||
print 'Status: %d %s' % (code, message)
|
print 'Status: %d %s' % (code, message)
|
||||||
print 'Content-Type: text/html'
|
print 'Content-Type: %s' % BaseHTTPServer.DEFAULT_ERROR_CONTENT_TYPE
|
||||||
print 'Content-Length: %d' % len(response)
|
print 'Content-Length: %d' % len(response)
|
||||||
print
|
print
|
||||||
sys.stdout.write(response)
|
sys.stdout.write(response)
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
import socket
|
import socket
|
||||||
import StringIO
|
import StringIO
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
from test import test_support
|
from test import test_support
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -385,6 +386,21 @@ def test_simple1(self):
|
||||||
# protocol error; provide additional information in test output
|
# protocol error; provide additional information in test output
|
||||||
self.fail("%s\n%s" % (e, getattr(e, "headers", "")))
|
self.fail("%s\n%s" % (e, getattr(e, "headers", "")))
|
||||||
|
|
||||||
|
def test_nonascii(self):
|
||||||
|
start_string = 'P\N{LATIN SMALL LETTER Y WITH CIRCUMFLEX}t'
|
||||||
|
end_string = 'h\N{LATIN SMALL LETTER O WITH HORN}n'
|
||||||
|
|
||||||
|
try:
|
||||||
|
p = xmlrpclib.ServerProxy(URL)
|
||||||
|
self.assertEqual(p.add(start_string, end_string),
|
||||||
|
start_string + end_string)
|
||||||
|
except (xmlrpclib.ProtocolError, socket.error) as e:
|
||||||
|
# ignore failures due to non-blocking socket unavailable errors.
|
||||||
|
if not is_unavailable_exception(e):
|
||||||
|
# protocol error; provide additional information in test output
|
||||||
|
self.fail("%s\n%s" % (e, getattr(e, "headers", "")))
|
||||||
|
|
||||||
|
|
||||||
# [ch] The test 404 is causing lots of false alarms.
|
# [ch] The test 404 is causing lots of false alarms.
|
||||||
def XXXtest_404(self):
|
def XXXtest_404(self):
|
||||||
# send POST with httplib, it should return 404 header and
|
# send POST with httplib, it should return 404 header and
|
||||||
|
@ -646,6 +662,18 @@ def test_cgi_xmlrpc_response(self):
|
||||||
# start with 44th char so as not to get http header, we just need only xml
|
# start with 44th char so as not to get http header, we just need only xml
|
||||||
self.assertRaises(xmlrpclib.Fault, xmlrpclib.loads, handle[44:])
|
self.assertRaises(xmlrpclib.Fault, xmlrpclib.loads, handle[44:])
|
||||||
|
|
||||||
|
# Also test the content-length returned by handle_request
|
||||||
|
# Using the same test method inorder to avoid all the datapassing
|
||||||
|
# boilerplate code.
|
||||||
|
# Test for bug: http://bugs.python.org/issue5040
|
||||||
|
|
||||||
|
content = handle[handle.find("<?xml"):]
|
||||||
|
|
||||||
|
self.assertEquals(
|
||||||
|
int(re.search('Content-Length: (\d+)', handle).group(1)),
|
||||||
|
len(content))
|
||||||
|
|
||||||
|
|
||||||
os.remove("xmldata.txt")
|
os.remove("xmldata.txt")
|
||||||
os.remove(test_support.TESTFN)
|
os.remove(test_support.TESTFN)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue