| 123456789101112131415161718192021222324252627282930313233343536373839 |
- # coding=utf-8
- from django.test import TestCase
- from django.test.utils import override_settings
-
- from oscar.core import utils
-
-
- def sluggish(value, allow_unicode=False):
- return value.upper()
-
-
- class TestSlugify(TestCase):
-
- def test_default_unicode_to_ascii(self):
- self.assertEqual('konig-der-straxdfe', utils.slugify('König der Straße'))
- self.assertEqual('not-fancy', utils.slugify('Not fancy'))
- self.assertEqual('u4e01u4e02-u4e03u4e04u4e05', utils.slugify('丁丂 七丄丅'))
-
- @override_settings(OSCAR_SLUG_ALLOW_UNICODE=True)
- def test_allow_unicode(self):
- self.assertEqual('könig-der-straße', utils.slugify('König der Straße'))
- self.assertEqual('丁丂-七丄丅', utils.slugify('丁丂 七丄丅'))
- self.assertEqual('not-fancy', utils.slugify('Not fancy'))
-
- @override_settings(OSCAR_SLUG_FUNCTION='tests.integration.core.test_utils.sluggish')
- def test_custom_slugifier(self):
- self.assertEqual('HAM AND EGGS', utils.slugify('Ham and eggs'))
-
- @override_settings(OSCAR_SLUG_MAP={'c++': 'cpp'})
- def test_uses_custom_mappings(self):
- self.assertEqual('cpp', utils.slugify('c++'))
-
- @override_settings(OSCAR_SLUG_BLACKLIST=['the'])
- def test_uses_blacklist(self):
- self.assertEqual('bible', utils.slugify('The Bible'))
-
- @override_settings(OSCAR_SLUG_BLACKLIST=['the', 'bible'])
- def test_uses_blacklist_doesnt_reduce_to_nothing(self):
- self.assertEqual('bible', utils.slugify('The Bible'))
|