diff options
author | Timothy McCurrach <tim.mccurrach@gmail.com> | 2022-01-22 02:06:17 +0000 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-01-24 07:05:53 +0100 |
commit | efb4478e484ae61c5fc23563d4e9df1f8f49df49 (patch) | |
tree | 306d09237739696e8bc98739191b0ce1b3121179 /tests/messages_tests | |
parent | 7c4f3965098baad2396e24501e09237425a7bd6f (diff) | |
download | django-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.py | 33 |
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, + ) |