Fix CGI tests to take into account the platform's line ending (issue #13119)
This commit is contained in:
commit
4adc9a8cc9
|
@ -313,6 +313,8 @@ class CGIHTTPServerTestCase(BaseTestCase):
|
||||||
class request_handler(NoLogRequestHandler, CGIHTTPRequestHandler):
|
class request_handler(NoLogRequestHandler, CGIHTTPRequestHandler):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
linesep = os.linesep.encode('ascii')
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
BaseTestCase.setUp(self)
|
BaseTestCase.setUp(self)
|
||||||
self.cwd = os.getcwd()
|
self.cwd = os.getcwd()
|
||||||
|
@ -410,7 +412,7 @@ class CGIHTTPServerTestCase(BaseTestCase):
|
||||||
|
|
||||||
def test_headers_and_content(self):
|
def test_headers_and_content(self):
|
||||||
res = self.request('/cgi-bin/file1.py')
|
res = self.request('/cgi-bin/file1.py')
|
||||||
self.assertEqual((b'Hello World\n', 'text/html', 200),
|
self.assertEqual((b'Hello World' + self.linesep, 'text/html', 200),
|
||||||
(res.read(), res.getheader('Content-type'), res.status))
|
(res.read(), res.getheader('Content-type'), res.status))
|
||||||
|
|
||||||
def test_post(self):
|
def test_post(self):
|
||||||
|
@ -419,7 +421,7 @@ class CGIHTTPServerTestCase(BaseTestCase):
|
||||||
headers = {'Content-type' : 'application/x-www-form-urlencoded'}
|
headers = {'Content-type' : 'application/x-www-form-urlencoded'}
|
||||||
res = self.request('/cgi-bin/file2.py', 'POST', params, headers)
|
res = self.request('/cgi-bin/file2.py', 'POST', params, headers)
|
||||||
|
|
||||||
self.assertEqual(res.read(), b'1, python, 123456\n')
|
self.assertEqual(res.read(), b'1, python, 123456' + self.linesep)
|
||||||
|
|
||||||
def test_invaliduri(self):
|
def test_invaliduri(self):
|
||||||
res = self.request('/cgi-bin/invalid')
|
res = self.request('/cgi-bin/invalid')
|
||||||
|
@ -430,20 +432,20 @@ class CGIHTTPServerTestCase(BaseTestCase):
|
||||||
headers = {b'Authorization' : b'Basic ' +
|
headers = {b'Authorization' : b'Basic ' +
|
||||||
base64.b64encode(b'username:pass')}
|
base64.b64encode(b'username:pass')}
|
||||||
res = self.request('/cgi-bin/file1.py', 'GET', headers=headers)
|
res = self.request('/cgi-bin/file1.py', 'GET', headers=headers)
|
||||||
self.assertEqual((b'Hello World\n', 'text/html', 200),
|
self.assertEqual((b'Hello World' + self.linesep, 'text/html', 200),
|
||||||
(res.read(), res.getheader('Content-type'), res.status))
|
(res.read(), res.getheader('Content-type'), res.status))
|
||||||
|
|
||||||
def test_no_leading_slash(self):
|
def test_no_leading_slash(self):
|
||||||
# http://bugs.python.org/issue2254
|
# http://bugs.python.org/issue2254
|
||||||
res = self.request('cgi-bin/file1.py')
|
res = self.request('cgi-bin/file1.py')
|
||||||
self.assertEqual((b'Hello World\n', 'text/html', 200),
|
self.assertEqual((b'Hello World' + self.linesep, 'text/html', 200),
|
||||||
(res.read(), res.getheader('Content-type'), res.status))
|
(res.read(), res.getheader('Content-type'), res.status))
|
||||||
|
|
||||||
def test_os_environ_is_not_altered(self):
|
def test_os_environ_is_not_altered(self):
|
||||||
signature = "Test CGI Server"
|
signature = "Test CGI Server"
|
||||||
os.environ['SERVER_SOFTWARE'] = signature
|
os.environ['SERVER_SOFTWARE'] = signature
|
||||||
res = self.request('/cgi-bin/file1.py')
|
res = self.request('/cgi-bin/file1.py')
|
||||||
self.assertEqual((b'Hello World\n', 'text/html', 200),
|
self.assertEqual((b'Hello World' + self.linesep, 'text/html', 200),
|
||||||
(res.read(), res.getheader('Content-type'), res.status))
|
(res.read(), res.getheader('Content-type'), res.status))
|
||||||
self.assertEqual(os.environ['SERVER_SOFTWARE'], signature)
|
self.assertEqual(os.environ['SERVER_SOFTWARE'], signature)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue