test_shortcuts.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from django.test import TestCase
  2. from misago.core.shortcuts import check_object_slug, OutdatedSlug
  3. class MockModel(object):
  4. def __init__(self, slug):
  5. self.slug = slug
  6. class CheckObjectSlugTests(TestCase):
  7. def test_is_outdated_slug_exception_not_raised_for_valid_slug(self):
  8. """
  9. check_object_slug doesn't raise OutdatedSlug when slugs match
  10. """
  11. model = MockModel("test-slug")
  12. check_object_slug(model, "test-slug")
  13. def test_is_outdated_slug_exception_raised_for_invalid_slug(self):
  14. """
  15. check_object_slug raises OutdatedSlug when slugs mismatch
  16. """
  17. model = MockModel("test-slug")
  18. with self.assertRaises(OutdatedSlug):
  19. check_object_slug(model, "wrong-slug")
  20. def test_is_outdated_slug_exception_raised_with_valid_message(self):
  21. """
  22. check_object_slug raises OutdatedSlug with valid message
  23. """
  24. correct_slug = "test-slug"
  25. model = MockModel(correct_slug)
  26. try:
  27. check_object_slug(model, "wrong-slug")
  28. except OutdatedSlug as e:
  29. self.assertEqual(model, e.args[0])