mirror of
https://github.com/django/django.git
synced 2024-12-22 17:16:24 +00:00
Fixed #34173 -- Skipped saving sessions on 5xx responses.
This commit is contained in:
parent
df2db8b4a5
commit
17472c3304
@ -53,8 +53,8 @@ class SessionMiddleware(MiddlewareMixin):
|
||||
expires_time = time.time() + max_age
|
||||
expires = http_date(expires_time)
|
||||
# Save the session data and refresh the client cookie.
|
||||
# Skip session save for 500 responses, refs #3881.
|
||||
if response.status_code != 500:
|
||||
# Skip session save for 5xx responses.
|
||||
if response.status_code < 500:
|
||||
try:
|
||||
request.session.save()
|
||||
except UpdateError:
|
||||
|
@ -715,7 +715,7 @@ class SessionMiddlewareTests(TestCase):
|
||||
)
|
||||
|
||||
def test_session_save_on_500(self):
|
||||
def response_500(requset):
|
||||
def response_500(request):
|
||||
response = HttpResponse("Horrible error")
|
||||
response.status_code = 500
|
||||
request.session["hello"] = "world"
|
||||
@ -727,6 +727,19 @@ class SessionMiddlewareTests(TestCase):
|
||||
# The value wasn't saved above.
|
||||
self.assertNotIn("hello", request.session.load())
|
||||
|
||||
def test_session_save_on_5xx(self):
|
||||
def response_503(request):
|
||||
response = HttpResponse("Service Unavailable")
|
||||
response.status_code = 503
|
||||
request.session["hello"] = "world"
|
||||
return response
|
||||
|
||||
request = self.request_factory.get("/")
|
||||
SessionMiddleware(response_503)(request)
|
||||
|
||||
# The value wasn't saved above.
|
||||
self.assertNotIn("hello", request.session.load())
|
||||
|
||||
def test_session_update_error_redirect(self):
|
||||
def response_delete_session(request):
|
||||
request.session = DatabaseSession()
|
||||
|
Loading…
Reference in New Issue
Block a user