您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

test_utils.py 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. # coding=utf-8
  2. from django.test import TestCase
  3. from django.test.utils import override_settings
  4. from oscar.core import utils
  5. def sluggish(value, allow_unicode=False):
  6. return value.upper()
  7. class TestSlugify(TestCase):
  8. def test_default_unicode_to_ascii(self):
  9. self.assertEqual('konig-der-straxdfe', utils.slugify('König der Straße'))
  10. self.assertEqual('not-fancy', utils.slugify('Not fancy'))
  11. self.assertEqual('u4e01u4e02-u4e03u4e04u4e05', utils.slugify('丁丂 七丄丅'))
  12. @override_settings(OSCAR_SLUG_ALLOW_UNICODE=True)
  13. def test_allow_unicode(self):
  14. self.assertEqual('könig-der-straße', utils.slugify('König der Straße'))
  15. self.assertEqual('丁丂-七丄丅', utils.slugify('丁丂 七丄丅'))
  16. self.assertEqual('not-fancy', utils.slugify('Not fancy'))
  17. @override_settings(OSCAR_SLUG_FUNCTION='tests.integration.core.test_utils.sluggish')
  18. def test_custom_slugifier(self):
  19. self.assertEqual('HAM AND EGGS', utils.slugify('Ham and eggs'))
  20. @override_settings(OSCAR_SLUG_MAP={'c++': 'cpp'})
  21. def test_uses_custom_mappings(self):
  22. self.assertEqual('cpp', utils.slugify('c++'))
  23. @override_settings(OSCAR_SLUG_BLACKLIST=['the'])
  24. def test_uses_blacklist(self):
  25. self.assertEqual('bible', utils.slugify('The Bible'))
  26. @override_settings(OSCAR_SLUG_BLACKLIST=['the', 'bible'])
  27. def test_uses_blacklist_doesnt_reduce_to_nothing(self):
  28. self.assertEqual('bible', utils.slugify('The Bible'))