From 54d91795408c878ad335226a87a44961d7f646a9 Mon Sep 17 00:00:00 2001 From: Daniyal Date: Tue, 16 Mar 2021 12:34:06 +0530 Subject: [PATCH] Refs #32508 -- Raised ImproperlyConfigured instead of using "assert" in SessionStorage. --- django/contrib/messages/storage/session.py | 11 +++++++---- tests/messages_tests/test_session.py | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/django/contrib/messages/storage/session.py b/django/contrib/messages/storage/session.py index b5291f151c..6ec0a21cc2 100644 --- a/django/contrib/messages/storage/session.py +++ b/django/contrib/messages/storage/session.py @@ -4,6 +4,7 @@ from django.contrib.messages.storage.base import BaseStorage from django.contrib.messages.storage.cookie import ( MessageDecoder, MessageEncoder, ) +from django.core.exceptions import ImproperlyConfigured class SessionStorage(BaseStorage): @@ -13,10 +14,12 @@ class SessionStorage(BaseStorage): session_key = '_messages' def __init__(self, request, *args, **kwargs): - assert hasattr(request, 'session'), "The session-based temporary "\ - "message storage requires session middleware to be installed, "\ - "and come before the message middleware in the "\ - "MIDDLEWARE list." + if not hasattr(request, 'session'): + raise ImproperlyConfigured( + 'The session-based temporary message storage requires session ' + 'middleware to be installed, and come before the message ' + 'middleware in the MIDDLEWARE list.' + ) super().__init__(request, *args, **kwargs) def _get(self, *args, **kwargs): diff --git a/tests/messages_tests/test_session.py b/tests/messages_tests/test_session.py index 16f893f08b..c313921baa 100644 --- a/tests/messages_tests/test_session.py +++ b/tests/messages_tests/test_session.py @@ -1,6 +1,7 @@ from django.contrib.messages import constants from django.contrib.messages.storage.base import Message from django.contrib.messages.storage.session import SessionStorage +from django.core.exceptions import ImproperlyConfigured from django.http import HttpRequest from django.test import TestCase from django.utils.safestring import SafeData, mark_safe @@ -41,7 +42,7 @@ class SessionTests(BaseTests, TestCase): 'middleware to be installed, and come before the message ' 'middleware in the MIDDLEWARE list.' ) - with self.assertRaisesMessage(AssertionError, msg): + with self.assertRaisesMessage(ImproperlyConfigured, msg): self.storage_class(HttpRequest()) def test_get(self):