Tests: added Python input readline and iterator tests.
This commit is contained in:
@@ -1,5 +1,16 @@
|
|||||||
def application(environ, start_response):
|
def application(environ, start_response):
|
||||||
body = bytes(environ['wsgi.input'].__iter__())
|
body = []
|
||||||
|
content_length = 0
|
||||||
|
|
||||||
start_response('200', [('Content-Length', str(len(body)))])
|
for l in environ['wsgi.input'].__iter__():
|
||||||
return [body]
|
body.append(l)
|
||||||
|
content_length += len(l)
|
||||||
|
|
||||||
|
start_response(
|
||||||
|
'200',
|
||||||
|
[
|
||||||
|
('Content-Length', str(content_length)),
|
||||||
|
('X-Lines-Count', str(len(body))),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
return body
|
||||||
|
|||||||
20
test/python/input_readline/wsgi.py
Normal file
20
test/python/input_readline/wsgi.py
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
def application(environ, start_response):
|
||||||
|
body = []
|
||||||
|
content_length = 0
|
||||||
|
|
||||||
|
while True:
|
||||||
|
l = environ['wsgi.input'].readline()
|
||||||
|
if not l:
|
||||||
|
break
|
||||||
|
|
||||||
|
body.append(l)
|
||||||
|
content_length += len(l)
|
||||||
|
|
||||||
|
start_response(
|
||||||
|
'200',
|
||||||
|
[
|
||||||
|
('Content-Length', str(content_length)),
|
||||||
|
('X-Lines-Count', str(len(body))),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
return body
|
||||||
16
test/python/input_readline_size/wsgi.py
Normal file
16
test/python/input_readline_size/wsgi.py
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
def application(environ, start_response):
|
||||||
|
body = []
|
||||||
|
|
||||||
|
while True:
|
||||||
|
l = environ['wsgi.input'].readline(9)
|
||||||
|
if not l:
|
||||||
|
break
|
||||||
|
|
||||||
|
body.append(l)
|
||||||
|
|
||||||
|
if len(l) > 9:
|
||||||
|
body.append(b'len(l) > 9: ' + l)
|
||||||
|
break
|
||||||
|
|
||||||
|
start_response('200', [('X-Lines-Count', str(len(body)))])
|
||||||
|
return body
|
||||||
5
test/python/input_readlines/wsgi.py
Normal file
5
test/python/input_readlines/wsgi.py
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
def application(environ, start_response):
|
||||||
|
body = environ['wsgi.input'].readlines()
|
||||||
|
|
||||||
|
start_response('200', [('X-Lines-Count', str(len(body)))])
|
||||||
|
return body
|
||||||
@@ -384,13 +384,80 @@ Connection: close
|
|||||||
|
|
||||||
self.assertEqual(self.get()['status'], 500, 'start response exit')
|
self.assertEqual(self.get()['status'], 500, 'start response exit')
|
||||||
|
|
||||||
@unittest.skip('not yet')
|
|
||||||
def test_python_application_input_iter(self):
|
def test_python_application_input_iter(self):
|
||||||
self.load('input_iter')
|
self.load('input_iter')
|
||||||
|
|
||||||
body = '0123456789'
|
body = '''0123456789
|
||||||
|
next line
|
||||||
|
|
||||||
self.assertEqual(self.post(body=body)['body'], body, 'input iter')
|
last line'''
|
||||||
|
|
||||||
|
resp = self.post(body=body)
|
||||||
|
self.assertEqual(resp['body'], body, 'input iter')
|
||||||
|
self.assertEqual(
|
||||||
|
resp['headers']['X-Lines-Count'], '4', 'input iter lines'
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_python_application_input_readline(self):
|
||||||
|
self.load('input_readline')
|
||||||
|
|
||||||
|
body = '''0123456789
|
||||||
|
next line
|
||||||
|
|
||||||
|
last line'''
|
||||||
|
|
||||||
|
resp = self.post(body=body)
|
||||||
|
self.assertEqual(resp['body'], body, 'input readline')
|
||||||
|
self.assertEqual(
|
||||||
|
resp['headers']['X-Lines-Count'], '4', 'input readline lines'
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_python_application_input_readline_size(self):
|
||||||
|
self.load('input_readline_size')
|
||||||
|
|
||||||
|
body = '''0123456789
|
||||||
|
next line
|
||||||
|
|
||||||
|
last line'''
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
self.post(body=body)['body'], body, 'input readline size'
|
||||||
|
)
|
||||||
|
self.assertEqual(
|
||||||
|
self.post(body='0123')['body'], '0123', 'input readline size less'
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_python_application_input_readlines(self):
|
||||||
|
self.load('input_readlines')
|
||||||
|
|
||||||
|
body = '''0123456789
|
||||||
|
next line
|
||||||
|
|
||||||
|
last line'''
|
||||||
|
|
||||||
|
resp = self.post(body=body)
|
||||||
|
self.assertEqual(resp['body'], body, 'input readlines')
|
||||||
|
self.assertEqual(
|
||||||
|
resp['headers']['X-Lines-Count'], '4', 'input readlines lines'
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_python_application_input_readlines_huge(self):
|
||||||
|
self.load('input_readlines')
|
||||||
|
|
||||||
|
body = (
|
||||||
|
'''0123456789 abcdefghi
|
||||||
|
next line: 0123456789 abcdefghi
|
||||||
|
|
||||||
|
last line: 987654321
|
||||||
|
'''
|
||||||
|
* 512
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
self.post(body=body, read_buffer_size=16384)['body'],
|
||||||
|
body,
|
||||||
|
'input readlines huge',
|
||||||
|
)
|
||||||
|
|
||||||
def test_python_application_input_read_length(self):
|
def test_python_application_input_read_length(self):
|
||||||
self.load('input_read_length')
|
self.load('input_read_length')
|
||||||
|
|||||||
Reference in New Issue
Block a user