Commit 3b81dbe8 authored by Ned Batchelder's avatar Ned Batchelder Committed by Tim Graham
Browse files

Used %r in the TextNode repr to show newlines better.

parent c31bf8cb
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -976,8 +976,8 @@ class TextNode(Node):
        self.s = s

    def __repr__(self):
        return force_str("<Text Node: '%s'>" % self.s[:25], 'ascii',
                errors='replace')
        rep = "<%s: %r>" % (self.__class__.__name__, self.s[:25])
        return force_str(rep, 'ascii', errors='replace')

    def render(self, context):
        return self.s
+17 −1
Original line number Diff line number Diff line
from unittest import TestCase

from django.template import Context, Engine
from django.template.base import VariableNode
from django.template.base import TextNode, VariableNode
from django.utils import six


class NodelistTest(TestCase):
@@ -32,6 +33,21 @@ class NodelistTest(TestCase):
        self.assertEqual(len(vars), 1)


class TextNodeTest(TestCase):

    def test_textnode_repr(self):
        engine = Engine()
        for temptext, reprtext in [
            ("Hello, world!", "<TextNode: u'Hello, world!'>"),
            ("One\ntwo.", "<TextNode: u'One\\ntwo.'>"),
        ]:
            template = engine.from_string(temptext)
            texts = template.nodelist.get_nodes_by_type(TextNode)
            if six.PY3:
                reprtext = reprtext.replace("u'", "'")
            self.assertEqual(repr(texts[0]), reprtext)


class ErrorIndexTest(TestCase):
    """
    Checks whether index of error is calculated correctly in