summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaptiste Mispelon <bm@m2bpo.com>2013-04-10 10:43:19 +0200
committerClaude Paroz <claude@2xlibre.net>2013-04-10 13:05:29 +0200
commite7b9c11c3f87e235e643c340d38325fbd4257047 (patch)
tree06bd9bcfadd459f7a1f9e19f0059b43bebaf996b
parent118faa0893957bff0ac34765fc9a66c586c4a932 (diff)
Fixed #20231 -- Don't use allow_lazy on smart_split
-rw-r--r--django/utils/text.py1
-rw-r--r--tests/text/tests.py70
2 files changed, 35 insertions, 36 deletions
diff --git a/django/utils/text.py b/django/utils/text.py
index 02c3f10678..4fe92ab509 100644
--- a/django/utils/text.py
+++ b/django/utils/text.py
@@ -356,7 +356,6 @@ def smart_split(text):
text = force_text(text)
for bit in smart_split_re.finditer(text):
yield bit.group(0)
-smart_split = allow_lazy(smart_split, six.text_type)
def _replace_entity(match):
text = match.group(1)
diff --git a/tests/text/tests.py b/tests/text/tests.py
index e61c14d103..c14f3baf82 100644
--- a/tests/text/tests.py
+++ b/tests/text/tests.py
@@ -2,12 +2,16 @@
from __future__ import unicode_literals
from django.test import TestCase
-from django.utils.encoding import iri_to_uri
+from django.utils.encoding import iri_to_uri, force_text
+from django.utils.functional import lazy
from django.utils.http import (cookie_date, http_date,
urlquote, urlquote_plus, urlunquote, urlunquote_plus)
+from django.utils import six
from django.utils.text import get_text_list, smart_split
from django.utils.translation import override
+lazystr = lazy(force_text, six.text_type)
+
class TextTests(TestCase):
"""
@@ -25,40 +29,36 @@ class TextTests(TestCase):
def test_smart_split(self):
- self.assertEqual(list(smart_split(r'''This is "a person" test.''')),
- ['This', 'is', '"a person"', 'test.'])
-
- self.assertEqual(list(smart_split(r'''This is "a person's" test.'''))[2],
- '"a person\'s"')
-
- self.assertEqual(list(smart_split(r'''This is "a person\"s" test.'''))[2],
- '"a person\\"s"')
-
- self.assertEqual(list(smart_split('''"a 'one''')), ['"a', "'one"])
-
- self.assertEqual(list(smart_split(r'''all friends' tests'''))[1],
- "friends'")
-
- self.assertEqual(list(smart_split('url search_page words="something else"')),
- ['url', 'search_page', 'words="something else"'])
-
- self.assertEqual(list(smart_split("url search_page words='something else'")),
- ['url', 'search_page', "words='something else'"])
-
- self.assertEqual(list(smart_split('url search_page words "something else"')),
- ['url', 'search_page', 'words', '"something else"'])
-
- self.assertEqual(list(smart_split('url search_page words-"something else"')),
- ['url', 'search_page', 'words-"something else"'])
-
- self.assertEqual(list(smart_split('url search_page words=hello')),
- ['url', 'search_page', 'words=hello'])
-
- self.assertEqual(list(smart_split('url search_page words="something else')),
- ['url', 'search_page', 'words="something', 'else'])
-
- self.assertEqual(list(smart_split("cut:','|cut:' '")),
- ["cut:','|cut:' '"])
+ testdata = [
+ ('This is "a person" test.',
+ ['This', 'is', '"a person"', 'test.']),
+ ('This is "a person\'s" test.',
+ ['This', 'is', '"a person\'s"', 'test.']),
+ ('This is "a person\\"s" test.',
+ ['This', 'is', '"a person\\"s"', 'test.']),
+ ('"a \'one',
+ ['"a', "'one"]),
+ ('all friends\' tests',
+ ['all', 'friends\'', 'tests']),
+ ('url search_page words="something else"',
+ ['url', 'search_page', 'words="something else"']),
+ ("url search_page words='something else'",
+ ['url', 'search_page', "words='something else'"]),
+ ('url search_page words "something else"',
+ ['url', 'search_page', 'words', '"something else"']),
+ ('url search_page words-"something else"',
+ ['url', 'search_page', 'words-"something else"']),
+ ('url search_page words=hello',
+ ['url', 'search_page', 'words=hello']),
+ ('url search_page words="something else',
+ ['url', 'search_page', 'words="something', 'else']),
+ ("cut:','|cut:' '",
+ ["cut:','|cut:' '"]),
+ (lazystr("a b c d"), # Test for #20231
+ ['a', 'b', 'c', 'd']),
+ ]
+ for test, expected in testdata:
+ self.assertEqual(list(smart_split(test)), expected)
def test_urlquote(self):
self.assertEqual(urlquote('Paris & Orl\xe9ans'),