test_validators.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from django.core.exceptions import ValidationError
  2. from django.test import TestCase
  3. from misago.conf import settings
  4. from ..validators import validate_title
  5. class ValidateTitleTests(TestCase):
  6. def test_valid_titles(self):
  7. """validate_title is ok with valid titles"""
  8. VALID_TITLES = (
  9. 'Lorem ipsum dolor met',
  10. '123 456 789 112'
  11. 'Ugabugagagagagaga',
  12. )
  13. for title in VALID_TITLES:
  14. validate_title(title)
  15. def test_too_short_title(self):
  16. """too short title is unblocked"""
  17. with self.assertRaises(ValidationError):
  18. title = 'a' * settings.thread_title_length_min
  19. validate_title(title[1:])
  20. def test_too_long_title(self):
  21. """too long title is unblocked"""
  22. with self.assertRaises(ValidationError):
  23. title = 'a' * settings.thread_title_length_max
  24. validate_title(title * 2)
  25. def test_unsluggable_title(self):
  26. """unsluggable title is blocked"""
  27. with self.assertRaises(ValidationError):
  28. title = '--' * settings.thread_title_length_min
  29. validate_title(title)