1. from functools import partial, update_wrapper
    
  2. 
    
  3. from django.contrib.auth.decorators import user_passes_test
    
  4. from django.http import HttpResponse
    
  5. from django.urls import reverse_lazy
    
  6. from django.views.generic import RedirectView
    
  7. 
    
  8. 
    
  9. def empty_view(request, *args, **kwargs):
    
  10.     return HttpResponse()
    
  11. 
    
  12. 
    
  13. def absolute_kwargs_view(request, arg1=1, arg2=2):
    
  14.     return HttpResponse()
    
  15. 
    
  16. 
    
  17. def defaults_view(request, arg1, arg2):
    
  18.     pass
    
  19. 
    
  20. 
    
  21. def nested_view(request):
    
  22.     pass
    
  23. 
    
  24. 
    
  25. def erroneous_view(request):
    
  26.     import non_existent  # NOQA
    
  27. 
    
  28. 
    
  29. def pass_resolver_match_view(request, *args, **kwargs):
    
  30.     response = HttpResponse()
    
  31.     response.resolver_match = request.resolver_match
    
  32.     return response
    
  33. 
    
  34. 
    
  35. uncallable = None  # neither a callable nor a string
    
  36. 
    
  37. 
    
  38. class ViewClass:
    
  39.     def __call__(self, request, *args, **kwargs):
    
  40.         return HttpResponse()
    
  41. 
    
  42. 
    
  43. view_class_instance = ViewClass()
    
  44. 
    
  45. 
    
  46. class LazyRedirectView(RedirectView):
    
  47.     url = reverse_lazy("named-lazy-url-redirected-to")
    
  48. 
    
  49. 
    
  50. @user_passes_test(
    
  51.     lambda u: u.is_authenticated, login_url=reverse_lazy("some-login-page")
    
  52. )
    
  53. def login_required_view(request):
    
  54.     return HttpResponse("Hello you")
    
  55. 
    
  56. 
    
  57. def bad_view(request, *args, **kwargs):
    
  58.     raise ValueError("I don't think I'm getting good value for this view")
    
  59. 
    
  60. 
    
  61. empty_view_partial = partial(empty_view, template_name="template.html")
    
  62. empty_view_nested_partial = partial(
    
  63.     empty_view_partial, template_name="nested_partial.html"
    
  64. )
    
  65. empty_view_wrapped = update_wrapper(
    
  66.     partial(empty_view, template_name="template.html"),
    
  67.     empty_view,
    
  68. )