88
99from rest_framework import status
1010from rest_framework .decorators import api_view , renderer_classes
11+ from rest_framework .exceptions import ValidationError
1112from rest_framework .renderers import TemplateHTMLRenderer
1213from rest_framework .response import Response
1314
@@ -34,10 +35,17 @@ def not_found(request):
3435 raise Http404 ()
3536
3637
38+ @api_view (('GET' ,))
39+ @renderer_classes ((TemplateHTMLRenderer ,))
40+ def validation_error (request ):
41+ raise ValidationError ('error' )
42+
43+
3744urlpatterns = [
3845 path ('' , example ),
3946 path ('permission_denied' , permission_denied ),
4047 path ('not_found' , not_found ),
48+ path ('validation_error' , validation_error ),
4149]
4250
4351
@@ -91,6 +99,12 @@ def test_permission_denied_html_view(self):
9199 self .assertEqual (response .content , b"403 Forbidden" )
92100 self .assertEqual (response ['Content-Type' ], 'text/html; charset=utf-8' )
93101
102+ def test_validation_error_html_view (self ):
103+ response = self .client .get ('/validation_error' )
104+ self .assertEqual (response .status_code , status .HTTP_400_BAD_REQUEST )
105+ self .assertEqual (response .content , b"400 Bad Request" )
106+ self .assertEqual (response ['Content-Type' ], 'text/html; charset=utf-8' )
107+
94108 # 2 tests below are based on order of if statements in corresponding method
95109 # of TemplateHTMLRenderer
96110 def test_get_template_names_returns_own_template_name (self ):
0 commit comments