Updated tests to pass in python 3

This commit is contained in:
Tom Christie 2013-12-23 11:55:25 +00:00
parent 9d281e187a
commit 3f5e3c28f5
2 changed files with 10 additions and 6 deletions

View File

@ -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):
""" """
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

View File

@ -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",
])