summaryrefslogtreecommitdiff
path: root/tests/messages_tests
diff options
context:
space:
mode:
authorTimothy McCurrach <tim.mccurrach@gmail.com>2022-01-22 02:06:17 +0000
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-01-24 07:05:53 +0100
commitefb4478e484ae61c5fc23563d4e9df1f8f49df49 (patch)
tree306d09237739696e8bc98739191b0ce1b3121179 /tests/messages_tests
parent7c4f3965098baad2396e24501e09237425a7bd6f (diff)
downloaddjango-efb4478e484ae61c5fc23563d4e9df1f8f49df49.tar.gz
Fixed #33458 -- Fixed encoding of messages with empty string as extra_tags.
Diffstat (limited to 'tests/messages_tests')
-rw-r--r--tests/messages_tests/test_cookie.py33
1 files changed, 25 insertions, 8 deletions
diff --git a/tests/messages_tests/test_cookie.py b/tests/messages_tests/test_cookie.py
index 53cf693f61..248afae4f4 100644
--- a/tests/messages_tests/test_cookie.py
+++ b/tests/messages_tests/test_cookie.py
@@ -52,6 +52,12 @@ class CookieTests(BaseTests, SimpleTestCase):
def stored_messages_count(self, storage, response):
return stored_cookie_messages_count(storage, response)
+ def encode_decode(self, *args, **kwargs):
+ storage = self.get_storage()
+ message = Message(constants.DEBUG, *args, **kwargs)
+ encoded = storage._encode(message)
+ return storage._decode(encoded)
+
def test_get(self):
storage = self.storage_class(self.get_request())
# Set initial data.
@@ -168,12 +174,23 @@ class CookieTests(BaseTests, SimpleTestCase):
A message containing SafeData is keeping its safe status when
retrieved from the message storage.
"""
- def encode_decode(data):
- message = Message(constants.DEBUG, data)
- encoded = storage._encode(message)
- decoded = storage._decode(encoded)
- return decoded.message
+ self.assertIsInstance(
+ self.encode_decode(mark_safe('<b>Hello Django!</b>')).message,
+ SafeData,
+ )
+ self.assertNotIsInstance(
+ self.encode_decode('<b>Hello Django!</b>').message,
+ SafeData,
+ )
- storage = self.get_storage()
- self.assertIsInstance(encode_decode(mark_safe("<b>Hello Django!</b>")), SafeData)
- self.assertNotIsInstance(encode_decode("<b>Hello Django!</b>"), SafeData)
+ def test_extra_tags(self):
+ """
+ A message's extra_tags attribute is correctly preserved when retrieved
+ from the message storage.
+ """
+ for extra_tags in ['', None, 'some tags']:
+ with self.subTest(extra_tags=extra_tags):
+ self.assertEqual(
+ self.encode_decode('message', extra_tags=extra_tags).extra_tags,
+ extra_tags,
+ )