Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/websdk/werkzeug/testsuite/multipart/collect.py
diff options
context:
space:
mode:
Diffstat (limited to 'websdk/werkzeug/testsuite/multipart/collect.py')
-rw-r--r--websdk/werkzeug/testsuite/multipart/collect.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/websdk/werkzeug/testsuite/multipart/collect.py b/websdk/werkzeug/testsuite/multipart/collect.py
new file mode 100644
index 0000000..5fce5e9
--- /dev/null
+++ b/websdk/werkzeug/testsuite/multipart/collect.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+"""
+Hacky helper application to collect form data.
+"""
+from werkzeug.serving import run_simple
+from werkzeug.wrappers import Request, Response
+
+
+def copy_stream(request):
+ from os import mkdir
+ from time import time
+ folder = 'request-%d' % time()
+ mkdir(folder)
+ environ = request.environ
+ f = file(folder + '/request.txt', 'wb+')
+ f.write(environ['wsgi.input'].read(int(environ['CONTENT_LENGTH'])))
+ f.flush()
+ f.seek(0)
+ environ['wsgi.input'] = f
+ request.stat_folder = folder
+
+
+def stats(request):
+ copy_stream(request)
+ f1 = request.files['file1']
+ f2 = request.files['file2']
+ text = request.form['text']
+ f1.save(request.stat_folder + '/file1.bin')
+ f2.save(request.stat_folder + '/file2.bin')
+ file(request.stat_folder + '/text.txt', 'w').write(text.encode('utf-8'))
+ return Response('Done.')
+
+
+def upload_file(request):
+ return Response('''
+ <h1>Upload File</h1>
+ <form action="" method="post" enctype="multipart/form-data">
+ <input type="file" name="file1"><br>
+ <input type="file" name="file2"><br>
+ <textarea name="text"></textarea><br>
+ <input type="submit" value="Send">
+ </form>
+ ''', mimetype='text/html')
+
+
+def application(environ, start_responseonse):
+ request = Request(environ)
+ if request.method == 'POST':
+ response = stats(request)
+ else:
+ response = upload_file(request)
+ return response(environ, start_responseonse)
+
+
+if __name__ == '__main__':
+ run_simple('localhost', 5000, application, use_debugger=True)