Tests: added test for uploading files with SSL.
* * * [mq]: multipart
This commit is contained in:
27
test/python/upload/wsgi.py
Normal file
27
test/python/upload/wsgi.py
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
from tempfile import TemporaryFile
|
||||||
|
import os, cgi
|
||||||
|
|
||||||
|
def read(environ):
|
||||||
|
length = int(environ.get('CONTENT_LENGTH', 0))
|
||||||
|
|
||||||
|
body = TemporaryFile(mode='w+b')
|
||||||
|
body.write(bytes(environ['wsgi.input'].read(length)))
|
||||||
|
body.seek(0)
|
||||||
|
|
||||||
|
environ['wsgi.input'] = body
|
||||||
|
return body
|
||||||
|
|
||||||
|
def application(environ, start_response):
|
||||||
|
file = read(environ)
|
||||||
|
|
||||||
|
form = cgi.FieldStorage(fp=file, environ=environ, keep_blank_values=True)
|
||||||
|
|
||||||
|
filename = form['file'].filename
|
||||||
|
data = filename.encode() + form['file'].file.read()
|
||||||
|
|
||||||
|
start_response('200 OK', [
|
||||||
|
('Content-Type', 'text/plain'),
|
||||||
|
('Content-Length', str(len(data))),
|
||||||
|
])
|
||||||
|
|
||||||
|
return data
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import io
|
||||||
|
import os
|
||||||
import re
|
import re
|
||||||
import ssl
|
import ssl
|
||||||
import subprocess
|
import subprocess
|
||||||
@@ -591,5 +593,25 @@ basicConstraints = critical,CA:TRUE"""
|
|||||||
'url scheme https',
|
'url scheme https',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_tls_big_upload(self):
|
||||||
|
self.load('upload')
|
||||||
|
|
||||||
|
self.certificate()
|
||||||
|
|
||||||
|
self.add_tls(application='upload')
|
||||||
|
|
||||||
|
filename = 'test.txt'
|
||||||
|
data = '0123456789' * 9000
|
||||||
|
|
||||||
|
res = self.post_ssl(body={
|
||||||
|
'file': {
|
||||||
|
'filename': filename,
|
||||||
|
'type': 'text/plain',
|
||||||
|
'data': io.StringIO(data),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
self.assertEqual(res['status'], 200, 'status ok')
|
||||||
|
self.assertEqual(res['body'], filename + data)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
TestTLS.main()
|
TestTLS.main()
|
||||||
|
|||||||
Reference in New Issue
Block a user