summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2019-09-04 03:21:30 -0700
committerChris Dent <cdent@anticdent.org>2019-09-04 11:21:30 +0100
commit71336fdd0dd7a4f12c3bbe077d6ec047fd84f9a8 (patch)
tree5ffdc332572f61edea5c1b045a9745c519dbaea2
parenta55bf98f51c57880e9c2cead4c01b5c23ce09839 (diff)
downloadpaste-git-71336fdd0dd7a4f12c3bbe077d6ec047fd84f9a8.tar.gz
TestApp: Make unicode urls always work. (#33)
Passing a unicode url to get() always worked (assuming the url contained only ASCII), but it didn't work to post(), put(), or delete() if query parameters were included. This change fixes the latter cases.
-rw-r--r--paste/fixture.py1
-rw-r--r--tests/test_fixture.py7
2 files changed, 8 insertions, 0 deletions
diff --git a/paste/fixture.py b/paste/fixture.py
index 969863c..4b88718 100644
--- a/paste/fixture.py
+++ b/paste/fixture.py
@@ -235,6 +235,7 @@ class TestApp(object):
environ['CONTENT_TYPE'] = content_type
elif params:
environ.setdefault('CONTENT_TYPE', 'application/x-www-form-urlencoded')
+ url = str(url)
if '?' in url:
url, environ['QUERY_STRING'] = url.split('?', 1)
else:
diff --git a/tests/test_fixture.py b/tests/test_fixture.py
index 2954140..3060299 100644
--- a/tests/test_fixture.py
+++ b/tests/test_fixture.py
@@ -72,3 +72,10 @@ def test_params_and_upload_files():
assert params['file1'].filename == 'myfile.txt'
assert params['file2'].value == b'data2'
assert params['file2'].filename == 'yourfile.txt'
+
+def test_unicode_path():
+ app = TestApp(SimpleApplication())
+ app.get(u"/?")
+ app.post(u"/?")
+ app.put(u"/?")
+ app.delete(u"/?")