Commit 1572a3d4 authored by Julien Phalip's avatar Julien Phalip
Browse files

Fixed #10931 -- Made `Truncator` handle newlines properly. Thanks to gsong and Claude Paroz.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@17329 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 6fa62b81
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -18,8 +18,8 @@ capfirst = lambda x: x and force_unicode(x)[0].upper() + force_unicode(x)[1:]
capfirst = allow_lazy(capfirst, unicode)

# Set up regular expressions
re_words = re.compile(r'&.*?;|<.*?>|(\w[\w-]*)', re.U)
re_tag = re.compile(r'<(/)?([^ ]+?)(?: (/)| .*?)?>')
re_words = re.compile(r'&.*?;|<.*?>|(\w[\w-]*)', re.U|re.S)
re_tag = re.compile(r'<(/)?([^ ]+?)(?: (/)| .*?)?>', re.S)


def wrap(text, width):
+5 −0
Original line number Diff line number Diff line
@@ -62,6 +62,11 @@ class TestUtilsText(unittest.TestCase):
            '</strong></p>', truncator.words(4, '....', html=True))
        self.assertEqual(u'<p><strong><em>The quick brown fox</em></strong>'
            '</p>', truncator.words(4, '', html=True))
        # Test with new line inside tag
        truncator = text.Truncator('<p>The quick <a href="xyz.html"\n'
            'id="mylink">brown fox</a> jumped over the lazy dog.</p>')
        self.assertEqual(u'<p>The quick <a href="xyz.html"\n'
            'id="mylink">brown...</a></p>', truncator.words(3, '...', html=True))

    def test_old_truncate_words(self):
        self.assertEqual(u'The quick brown fox jumped over the lazy dog.',