summaryrefslogtreecommitdiff
path: root/tests/view_tests
diff options
context:
space:
mode:
authorHasan Ramezani <hasan.r67@gmail.com>2020-09-07 13:33:47 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-09-09 09:04:28 +0200
commit2808cdc8fb15ad27f83af3e62db69f5ea7ced29e (patch)
tree8a2d09cad742e8f839bdb6ce21b6dc1bc2c73e82 /tests/view_tests
parentfc1446073ed9636047c48796cc20772ab60e12b0 (diff)
downloaddjango-2808cdc8fb15ad27f83af3e62db69f5ea7ced29e.tar.gz
Fixed #31962 -- Made SessionMiddleware raise SessionInterrupted when session destroyed while request is processing.
Diffstat (limited to 'tests/view_tests')
-rw-r--r--tests/view_tests/tests/test_debug.py20
-rw-r--r--tests/view_tests/urls.py1
-rw-r--r--tests/view_tests/views.py8
3 files changed, 28 insertions, 1 deletions
diff --git a/tests/view_tests/tests/test_debug.py b/tests/view_tests/tests/test_debug.py
index 6d1b3e6f48..2337d3ed3d 100644
--- a/tests/view_tests/tests/test_debug.py
+++ b/tests/view_tests/tests/test_debug.py
@@ -86,6 +86,16 @@ class DebugViewTests(SimpleTestCase):
response = self.client.get('/raises400/')
self.assertContains(response, '<div class="context" id="', status_code=400)
+ def test_400_bad_request(self):
+ # When DEBUG=True, technical_500_template() is called.
+ with self.assertLogs('django.request', 'WARNING') as cm:
+ response = self.client.get('/raises400_bad_request/')
+ self.assertContains(response, '<div class="context" id="', status_code=400)
+ self.assertEqual(
+ cm.records[0].getMessage(),
+ 'Malformed request syntax: /raises400_bad_request/',
+ )
+
# Ensure no 403.html template exists to test the default case.
@override_settings(TEMPLATES=[{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
@@ -321,6 +331,16 @@ class NonDjangoTemplatesDebugViewTests(SimpleTestCase):
response = self.client.get('/raises400/')
self.assertContains(response, '<div class="context" id="', status_code=400)
+ def test_400_bad_request(self):
+ # When DEBUG=True, technical_500_template() is called.
+ with self.assertLogs('django.request', 'WARNING') as cm:
+ response = self.client.get('/raises400_bad_request/')
+ self.assertContains(response, '<div class="context" id="', status_code=400)
+ self.assertEqual(
+ cm.records[0].getMessage(),
+ 'Malformed request syntax: /raises400_bad_request/',
+ )
+
def test_403(self):
response = self.client.get('/raises403/')
self.assertContains(response, '<h1>403 Forbidden</h1>', status_code=403)
diff --git a/tests/view_tests/urls.py b/tests/view_tests/urls.py
index 6c6f73467a..f394934f4d 100644
--- a/tests/view_tests/urls.py
+++ b/tests/view_tests/urls.py
@@ -23,6 +23,7 @@ urlpatterns = [
path('raises/', views.raises),
path('raises400/', views.raises400),
+ path('raises400_bad_request/', views.raises400_bad_request),
path('raises403/', views.raises403),
path('raises404/', views.raises404),
path('raises500/', views.raises500),
diff --git a/tests/view_tests/views.py b/tests/view_tests/views.py
index 36c7bda4b4..3d7d0908b0 100644
--- a/tests/view_tests/views.py
+++ b/tests/view_tests/views.py
@@ -3,7 +3,9 @@ import decimal
import logging
import sys
-from django.core.exceptions import PermissionDenied, SuspiciousOperation
+from django.core.exceptions import (
+ BadRequest, PermissionDenied, SuspiciousOperation,
+)
from django.http import Http404, HttpResponse, JsonResponse
from django.shortcuts import render
from django.template import TemplateDoesNotExist
@@ -50,6 +52,10 @@ def raises400(request):
raise SuspiciousOperation
+def raises400_bad_request(request):
+ raise BadRequest('Malformed request syntax')
+
+
def raises403(request):
raise PermissionDenied("Insufficient Permissions")