Skip to content

Commit

Permalink
Fixed #23060 -- Prevented UnicodeDecodeError in debug templatetag
Browse files Browse the repository at this point in the history
  • Loading branch information
qingfeng authored and claudep committed Jul 26, 2014
1 parent 90faa19 commit 08451f1
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
2 changes: 1 addition & 1 deletion django/template/defaulttags.py
Expand Up @@ -87,7 +87,7 @@ def render(self, context):
class DebugNode(Node):
def render(self, context):
from pprint import pformat
output = [pformat(val) for val in context]
output = [force_text(pformat(val)) for val in context]
output.append('\n\n')
output.append(pformat(sys.modules))
return ''.join(output)
Expand Down
10 changes: 10 additions & 0 deletions tests/template_tests/tests.py
Expand Up @@ -10,6 +10,7 @@

from django import template
from django.conf import settings
from django.contrib.auth.models import Group
from django.core import urlresolvers
from django.template import (base as template_base, loader, Context,
RequestContext, Template, TemplateSyntaxError)
Expand Down Expand Up @@ -499,6 +500,15 @@ def test_super_errors(self):
with self.assertRaises(urlresolvers.NoReverseMatch):
t.render(Context({}))

def test_debug_tag_non_ascii(self):
"""
Test non-ASCII model representation in debug output (#23060).
"""
Group.objects.create(name="清風")
c1 = Context({"objs": Group.objects.all()})
t1 = Template('{% debug %}')
self.assertIn("清風", t1.render(c1))


# Set ALLOWED_INCLUDE_ROOTS so that ssi works.
@override_settings(MEDIA_URL="/media/", STATIC_URL="/static/",
Expand Down

0 comments on commit 08451f1

Please sign in to comment.