test_exceptionhandler_is_misago_exception.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from django.test import TestCase
  2. from django.http import Http404 as DjHttp404
  3. from django.core import exceptions as django_exceptions
  4. from misago.core import exceptionhandler, exceptions as misago_exceptions
  5. DJANGO_EXCEPTIONS = (
  6. django_exceptions.PermissionDenied,
  7. django_exceptions.ViewDoesNotExist,
  8. DjHttp404,
  9. )
  10. PYTHON_EXCEPTIONS = (
  11. TypeError,
  12. ValueError,
  13. KeyError,
  14. )
  15. class ExceptionHandlerIsMisagoExceptionTestCase(TestCase):
  16. def test_misago_exception_list_valid(self):
  17. """Misago exception handler MISAGO_EXCEPTIONS list is valid"""
  18. self.assertEqual(len(exceptionhandler.MISAGO_EXCEPTIONS),
  19. len(misago_exceptions.__all__))
  20. def test_misago_exceptions_detection(self):
  21. """Misago exception handler correctly identifies Misago exceptions"""
  22. for exception in exceptionhandler.MISAGO_EXCEPTIONS:
  23. try:
  24. raise exception()
  25. except exception as e:
  26. self.assertTrue(exceptionhandler.is_misago_exception(e))
  27. def test_django_exceptions_detection(self):
  28. """Misago exception handler correctly identifies Django exceptions"""
  29. for exception in DJANGO_EXCEPTIONS:
  30. try:
  31. raise exception()
  32. except exception as e:
  33. self.assertFalse(exceptionhandler.is_misago_exception(e))
  34. def test_python_exceptions_detection(self):
  35. """Misago exception handler correctly identifies Python exceptions"""
  36. for exception in PYTHON_EXCEPTIONS:
  37. try:
  38. raise exception()
  39. except exception as e:
  40. self.assertFalse(exceptionhandler.is_misago_exception(e))