test_shortcuts.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. try:
  13. check_object_slug(model, "test-slug")
  14. except OutdatedSlug:
  15. self.fail("check_object_slug raised OutdatedSlug for valid slugs")
  16. def test_is_outdated_slug_exception_raised_for_invalid_slug(self):
  17. """
  18. check_object_slug raises OutdatedSlug when slugs mismatch
  19. """
  20. model = MockModel("test-slug")
  21. with self.assertRaises(OutdatedSlug):
  22. check_object_slug(model, "wrong-slug")
  23. def test_is_outdated_slug_exception_raised_with_valid_message(self):
  24. """
  25. check_object_slug raises OutdatedSlug with valid message
  26. """
  27. correct_slug = "test-slug"
  28. model = MockModel(correct_slug)
  29. try:
  30. check_object_slug(model, "wrong-slug")
  31. except OutdatedSlug as e:
  32. self.assertEqual(model, e.args[0])