From 3374eef724f261e9e9435d1d4da5edcf101afab4 Mon Sep 17 00:00:00 2001 From: Jeff Balogh Date: Tue, 23 Aug 2011 17:54:31 -0700 Subject: [PATCH] test unicode harder (bug 681351) --- apps/users/helpers.py | 5 +++-- apps/users/tests/test_helpers.py | 8 ++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/apps/users/helpers.py b/apps/users/helpers.py index 26df9245e30..2ad7d425571 100644 --- a/apps/users/helpers.py +++ b/apps/users/helpers.py @@ -1,7 +1,8 @@ import random -import jinja2 +from django.utils.encoding import smart_unicode +import jinja2 from jingo import register, env from tower import ugettext as _ @@ -56,7 +57,7 @@ def _user_link(user): if isinstance(user, basestring): return user return u'%s' % ( - user.get_url_path(), unicode(jinja2.escape(user.name))) + user.get_url_path(), jinja2.escape(smart_unicode(user.name))) @register.filter diff --git a/apps/users/tests/test_helpers.py b/apps/users/tests/test_helpers.py index defbe7bd8a9..ff12335e671 100644 --- a/apps/users/tests/test_helpers.py +++ b/apps/users/tests/test_helpers.py @@ -70,7 +70,11 @@ def test_short_users_list(): def test_user_link_unicode(): """make sure helper won't choke on unicode input""" - u = UserProfile(username=u'jmüller', display_name=u'Jürgen Müller', - pk=1) + u = UserProfile(username=u'jmüller', display_name=u'Jürgen Müller', pk=1) eq_(user_link(u), u'Jürgen Müller' % reverse('users.profile', args=[1])) + + u = UserProfile(username='\xe5\xaf\x92\xe6\x98\x9f', pk=1) + url = reverse('users.profile', args=[1]) + eq_(user_link(u), + u'%s' % (url, u.username.decode('utf-8')))