summaryrefslogtreecommitdiff
path: root/tests/test_request_form.py
diff options
context:
space:
mode:
authorMarc Abramowitz <marc@marc-abramowitz.com>2016-03-07 14:05:52 -0800
committerMarc Abramowitz <marc@marc-abramowitz.com>2016-03-07 14:05:52 -0800
commit42b22881290e00e06b840dee1e42f0f5ef044d47 (patch)
treeb4fef928625acd3e8ee45ccaa8c7a6c9810b3601 /tests/test_request_form.py
downloadpaste-git-tox_add_py35.tar.gz
tox.ini: Add py35 to envlisttox_add_py35
Diffstat (limited to 'tests/test_request_form.py')
-rw-r--r--tests/test_request_form.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/test_request_form.py b/tests/test_request_form.py
new file mode 100644
index 0000000..cf43721
--- /dev/null
+++ b/tests/test_request_form.py
@@ -0,0 +1,36 @@
+import six
+
+from paste.request import *
+from paste.util.multidict import MultiDict
+
+def test_parse_querystring():
+ e = {'QUERY_STRING': 'a=1&b=2&c=3&b=4'}
+ d = parse_querystring(e)
+ assert d == [('a', '1'), ('b', '2'), ('c', '3'), ('b', '4')]
+ assert e['paste.parsed_querystring'] == (
+ (d, e['QUERY_STRING']))
+ e = {'QUERY_STRING': 'a&b&c=&d=1'}
+ d = parse_querystring(e)
+ assert d == [('a', ''), ('b', ''), ('c', ''), ('d', '1')]
+
+def make_post(body):
+ e = {
+ 'CONTENT_TYPE': 'application/x-www-form-urlencoded',
+ 'CONTENT_LENGTH': str(len(body)),
+ 'REQUEST_METHOD': 'POST',
+ 'wsgi.input': six.BytesIO(body),
+ }
+ return e
+
+def test_parsevars():
+ e = make_post(b'a=1&b=2&c=3&b=4')
+ #cur_input = e['wsgi.input']
+ d = parse_formvars(e)
+ assert isinstance(d, MultiDict)
+ assert d == MultiDict([('a', '1'), ('b', '2'), ('c', '3'), ('b', '4')])
+ assert e['paste.parsed_formvars'] == (
+ (d, e['wsgi.input']))
+ # XXX: http://trac.pythonpaste.org/pythonpaste/ticket/125
+ #assert e['wsgi.input'] is not cur_input
+ #cur_input.seek(0)
+ #assert e['wsgi.input'].read() == cur_input.read()