'Test for the require_safe decorator.
A view returns either a response or an exception.
Refs #15637.'

def test_require_safe_accepts_only_safe_methods(self):

    def my_view(request):
        return HttpResponse('OK')
    my_safe_view = require_safe(my_view)
    request = HttpRequest()
    request.method = 'GET'
    self.assertIsInstance(my_safe_view(request), HttpResponse)
    request.method = 'HEAD'
    self.assertIsInstance(my_safe_view(request), HttpResponse)
    request.method = 'POST'
    self.assertIsInstance(my_safe_view(request), HttpResponseNotAllowed)
    request.method = 'PUT'
    self.assertIsInstance(my_safe_view(request), HttpResponseNotAllowed)
    request.method = 'DELETE'
    self.assertIsInstance(my_safe_view(request), HttpResponseNotAllowed)
