test_exceptionhandler_middleware.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435
  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.conf.dynamicsettings import DynamicSettings
  7. from misago.conftest import get_cache_versions
  8. from misago.core.middleware import ExceptionHandlerMiddleware
  9. from misago.users.models import AnonymousUser
  10. def create_request():
  11. request = RequestFactory().get(reverse("misago:index"))
  12. request.cache_versions = get_cache_versions()
  13. request.settings = DynamicSettings(request.cache_versions)
  14. request.user = AnonymousUser()
  15. request.user_acl = get_user_acl(request.user, request.cache_versions)
  16. request.include_frontend_context = True
  17. request.frontend_context = {}
  18. return request
  19. class ExceptionHandlerMiddlewareTests(TestCase):
  20. def test_middleware_returns_response_for_supported_exception(self):
  21. """Middleware returns HttpResponse for supported exception"""
  22. middleware = ExceptionHandlerMiddleware()
  23. exception = Http404()
  24. assert middleware.process_exception(create_request(), exception)
  25. def test_middleware_returns_none_for_non_supported_exception(self):
  26. """Middleware returns None for non-supported exception"""
  27. middleware = ExceptionHandlerMiddleware()
  28. exception = TypeError()
  29. assert middleware.process_exception(create_request(), exception) is None