Commit 3f5e3c28 by Tom Christie

Updated tests to pass in python 3

parent 9d281e18
...@@ -2,6 +2,7 @@ from __future__ import unicode_literals, absolute_import ...@@ -2,6 +2,7 @@ from __future__ import unicode_literals, absolute_import
from django import template from django import template
from django.core.urlresolvers import reverse, NoReverseMatch from django.core.urlresolvers import reverse, NoReverseMatch
from django.http import QueryDict from django.http import QueryDict
from django.utils.encoding import iri_to_uri
from django.utils.html import escape from django.utils.html import escape
from django.utils.safestring import SafeData, mark_safe from django.utils.safestring import SafeData, mark_safe
from rest_framework.compat import urlparse, force_text, six, smart_urlquote from rest_framework.compat import urlparse, force_text, six, smart_urlquote
...@@ -144,7 +145,9 @@ def add_query_param(request, key, val): ...@@ -144,7 +145,9 @@ def add_query_param(request, key, val):
""" """
Add a query parameter to the current request url, and return the new url. Add a query parameter to the current request url, and return the new url.
""" """
return replace_query_param(request.build_absolute_uri(), key, val) iri = request.get_full_path()
uri = iri_to_uri(iri)
return replace_query_param(uri, key, val)
@register.filter @register.filter
......
...@@ -10,9 +10,10 @@ factory = APIRequestFactory() ...@@ -10,9 +10,10 @@ factory = APIRequestFactory()
class TemplateTagTests(TestCase): class TemplateTagTests(TestCase):
def test_add_query_param_with_non_latin_charactor(self): def test_add_query_param_with_non_latin_charactor(self):
request = factory.get("/?q=查询") # Ensure we don't double-escape non-latin characters
# that are present in the querystring.
# https://github.com/tomchristie/django-rest-framework/pull/1314
request = factory.get("/", {'q': '查询'})
json_url = add_query_param(request, "format", "json") json_url = add_query_param(request, "format", "json")
self.assertIn(json_url, [ self.assertIn("q=%E6%9F%A5%E8%AF%A2", json_url)
"http://testserver/?format=json&q=%E6%9F%A5%E8%AF%A2", self.assertIn("format=json")
"http://testserver/?q=%E6%9F%A5%E8%AF%A2&format=json",
])
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment