summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2019-09-03 19:20:00 -0700
committerBenjamin Peterson <benjamin@python.org>2019-09-03 19:21:11 -0700
commite509d245be993c336fbc6aa3cf1abc399bed3a65 (patch)
tree4350f5294fdd6ae75cee0eb3ad00bdc473864094
parentcdd2a9a58c59b8e599aa42b66b3c55ea47c7a4b7 (diff)
downloadpaste-git-benjaminp-fixture-unicode-paths.tar.gz
TestApp: Make unicode urls always work.benjaminp-fixture-unicode-paths
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"/?")