test_exceptionhandler_middleware.py 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. from django.http import Http404
  2. from django.test import TestCase
  3. from django.test.client import RequestFactory
  4. from django.urls import reverse
  5. from misago.acl.useracl import get_user_acl
  6. from misago.users.models import AnonymousUser
  7. from misago.core.middleware import ExceptionHandlerMiddleware
  8. def test_request():
  9. request = RequestFactory().get(reverse('misago:index'))
  10. request.cache_versions = {"acl": "abcdefgh"}
  11. request.user = AnonymousUser()
  12. request.user_acl = get_user_acl(request.user, request.cache_versions)
  13. request.include_frontend_context = True
  14. request.frontend_context = {}
  15. return request
  16. class ExceptionHandlerMiddlewareTests(TestCase):
  17. def test_middleware_returns_response_for_supported_exception(self):
  18. """Middleware returns HttpResponse for supported exception"""
  19. middleware = ExceptionHandlerMiddleware()
  20. exception = Http404()
  21. assert middleware.process_exception(test_request(), exception)
  22. def test_middleware_returns_none_for_non_supported_exception(self):
  23. """Middleware returns None for non-supported exception"""
  24. middleware = ExceptionHandlerMiddleware()
  25. exception = TypeError()
  26. assert middleware.process_exception(test_request(), exception) is None