123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- # coding: utf-8
- from __future__ import unicode_literals
- from django.test import TestCase
- 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):
- """
- Tests for stuff in django.utils.text and other text munging util functions.
- """
- def test_get_text_list(self):
- self.assertEqual(get_text_list(['a', 'b', 'c', 'd']), 'a, b, c or d')
- self.assertEqual(get_text_list(['a', 'b', 'c'], 'and'), 'a, b and c')
- self.assertEqual(get_text_list(['a', 'b'], 'and'), 'a and b')
- self.assertEqual(get_text_list(['a']), 'a')
- self.assertEqual(get_text_list([]), '')
- with override('ar'):
- self.assertEqual(get_text_list(['a', 'b', 'c']), "a، b أو c")
- def test_smart_split(self):
- 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'),
- 'Paris%20%26%20Orl%C3%A9ans')
- self.assertEqual(urlquote('Paris & Orl\xe9ans', safe="&"),
- 'Paris%20&%20Orl%C3%A9ans')
- self.assertEqual(
- urlunquote('Paris%20%26%20Orl%C3%A9ans'),
- 'Paris & Orl\xe9ans')
- self.assertEqual(
- urlunquote('Paris%20&%20Orl%C3%A9ans'),
- 'Paris & Orl\xe9ans')
- self.assertEqual(urlquote_plus('Paris & Orl\xe9ans'),
- 'Paris+%26+Orl%C3%A9ans')
- self.assertEqual(urlquote_plus('Paris & Orl\xe9ans', safe="&"),
- 'Paris+&+Orl%C3%A9ans')
- self.assertEqual(
- urlunquote_plus('Paris+%26+Orl%C3%A9ans'),
- 'Paris & Orl\xe9ans')
- self.assertEqual(
- urlunquote_plus('Paris+&+Orl%C3%A9ans'),
- 'Paris & Orl\xe9ans')
- def test_cookie_date(self):
- t = 1167616461.0
- self.assertEqual(cookie_date(t), 'Mon, 01-Jan-2007 01:54:21 GMT')
- def test_http_date(self):
- t = 1167616461.0
- self.assertEqual(http_date(t), 'Mon, 01 Jan 2007 01:54:21 GMT')
- def test_iri_to_uri(self):
- self.assertEqual(iri_to_uri('red%09ros\xe9#red'),
- 'red%09ros%C3%A9#red')
- self.assertEqual(iri_to_uri('/blog/for/J\xfcrgen M\xfcnster/'),
- '/blog/for/J%C3%BCrgen%20M%C3%BCnster/')
- self.assertEqual(iri_to_uri('locations/%s' % urlquote_plus('Paris & Orl\xe9ans')),
- 'locations/Paris+%26+Orl%C3%A9ans')
- def test_iri_to_uri_idempotent(self):
- self.assertEqual(iri_to_uri(iri_to_uri('red%09ros\xe9#red')),
- 'red%09ros%C3%A9#red')
|