def test_require_safe_accepts_only_safe_methods(self): """ Test for the require_safe decorator. A view returns either a response or an exception. Refs #15637. """ def my_view(request): return HttpResponse("OK") my_safe_view = require_safe(my_view) request = HttpRequest() request.method = 'GET' self.assertTrue(isinstance(my_safe_view(request), HttpResponse)) request.method = 'HEAD' self.assertTrue(isinstance(my_safe_view(request), HttpResponse)) request.method = 'POST' self.assertTrue(isinstance(my_safe_view(request), HttpResponseNotAllowed)) request.method = 'PUT' self.assertTrue(isinstance(my_safe_view(request), HttpResponseNotAllowed)) request.method = 'DELETE' self.assertTrue(isinstance(my_safe_view(request), HttpResponseNotAllowed))