summaryrefslogtreecommitdiff
path: root/lib/python2.7/site-packages/django/contrib/messages/tests/test_session.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/django/contrib/messages/tests/test_session.py')
-rw-r--r--lib/python2.7/site-packages/django/contrib/messages/tests/test_session.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/python2.7/site-packages/django/contrib/messages/tests/test_session.py b/lib/python2.7/site-packages/django/contrib/messages/tests/test_session.py
new file mode 100644
index 0000000..940e1c0
--- /dev/null
+++ b/lib/python2.7/site-packages/django/contrib/messages/tests/test_session.py
@@ -0,0 +1,53 @@
+from django.contrib.messages import constants
+from django.contrib.messages.tests.base import BaseTests
+from django.contrib.messages.storage.base import Message
+from django.contrib.messages.storage.session import SessionStorage
+from django.utils.safestring import SafeData, mark_safe
+from django.test import TestCase
+
+
+def set_session_data(storage, messages):
+ """
+ Sets the messages into the backend request's session and remove the
+ backend's loaded data cache.
+ """
+ storage.request.session[storage.session_key] = storage.serialize_messages(messages)
+ if hasattr(storage, '_loaded_data'):
+ del storage._loaded_data
+
+
+def stored_session_messages_count(storage):
+ data = storage.deserialize_messages(storage.request.session.get(storage.session_key, []))
+ return len(data)
+
+
+class SessionTest(BaseTests, TestCase):
+ storage_class = SessionStorage
+
+ def get_request(self):
+ self.session = {}
+ request = super(SessionTest, self).get_request()
+ request.session = self.session
+ return request
+
+ def stored_messages_count(self, storage, response):
+ return stored_session_messages_count(storage)
+
+ def test_get(self):
+ storage = self.storage_class(self.get_request())
+ # Set initial data.
+ example_messages = ['test', 'me']
+ set_session_data(storage, example_messages)
+ # Test that the message actually contains what we expect.
+ self.assertEqual(list(storage), example_messages)
+
+ def test_safedata(self):
+ """
+ Tests that a message containing SafeData is keeping its safe status when
+ retrieved from the message storage.
+ """
+ storage = self.get_storage()
+
+ message = Message(constants.DEBUG, mark_safe("<b>Hello Django!</b>"))
+ set_session_data(storage, [message])
+ self.assertIsInstance(list(storage)[0].message, SafeData)