test_exceptionhandler_middleware.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from django.http import Http404
  2. from django.test.client import RequestFactory
  3. from django.urls import reverse
  4. from ...acl.useracl import get_user_acl
  5. from ...conf.dynamicsettings import DynamicSettings
  6. from ...conftest import get_cache_versions
  7. from ...users.models import AnonymousUser
  8. from ..middleware import ExceptionHandlerMiddleware
  9. def create_request():
  10. request = RequestFactory().get(reverse("misago:index"))
  11. request.cache_versions = get_cache_versions()
  12. request.settings = DynamicSettings(request.cache_versions)
  13. request.user = AnonymousUser()
  14. request.user_acl = get_user_acl(request.user, request.cache_versions)
  15. request.include_frontend_context = True
  16. request.frontend_context = {}
  17. request.socialauth = {}
  18. return request
  19. def get_response(*_args):
  20. raise NotImplementedError()
  21. def test_exception_handler_middleware_returns_response_for_supported_exception(db):
  22. """Middleware returns HttpResponse for supported exception"""
  23. middleware = ExceptionHandlerMiddleware(get_response)
  24. exception = Http404()
  25. assert middleware.process_exception(create_request(), exception)
  26. def test_exception_handler_middleware_returns_none_for_non_supported_exception(db):
  27. """Middleware returns None for non-supported exception"""
  28. middleware = ExceptionHandlerMiddleware(get_response)
  29. exception = TypeError()
  30. assert middleware.process_exception(create_request(), exception) is None