diff options
| author | Florian Apolloner <florian@apolloner.eu> | 2020-11-13 16:34:37 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-11-20 10:27:09 +0100 |
| commit | d10425f9c762b9ee58721e4e8006d8cb238e1386 (patch) | |
| tree | fed3d20d3195cbb02fa8ed1e273c42bcd696cd81 | |
| parent | fe9c7ded2996364f853c524b4421274717d89d5f (diff) | |
Simplified MessageEncoder instantiation with default separators.
| -rw-r--r-- | django/contrib/messages/storage/cookie.py | 6 | ||||
| -rw-r--r-- | django/contrib/messages/storage/session.py | 2 | ||||
| -rw-r--r-- | tests/messages_tests/test_cookie.py | 4 |
3 files changed, 8 insertions, 4 deletions
diff --git a/django/contrib/messages/storage/cookie.py b/django/contrib/messages/storage/cookie.py index b51e292aa0..1198689968 100644 --- a/django/contrib/messages/storage/cookie.py +++ b/django/contrib/messages/storage/cookie.py @@ -14,6 +14,10 @@ class MessageEncoder(json.JSONEncoder): """ message_key = '__json_message' + def __init__(self, *args, **kwargs): + kwargs.setdefault('separators', (',', ':')) + super().__init__(*args, **kwargs) + def default(self, obj): if isinstance(obj, Message): # Using 0/1 here instead of False/True to produce more compact json @@ -148,7 +152,7 @@ class CookieStorage(BaseStorage): also contains a hash to ensure that the data was not tampered with. """ if messages or encode_empty: - encoder = MessageEncoder(separators=(',', ':')) + encoder = MessageEncoder() value = encoder.encode(messages) return self.signer.sign(value) diff --git a/django/contrib/messages/storage/session.py b/django/contrib/messages/storage/session.py index 170c4940ab..b5291f151c 100644 --- a/django/contrib/messages/storage/session.py +++ b/django/contrib/messages/storage/session.py @@ -38,7 +38,7 @@ class SessionStorage(BaseStorage): return [] def serialize_messages(self, messages): - encoder = MessageEncoder(separators=(',', ':')) + encoder = MessageEncoder() return encoder.encode(messages) def deserialize_messages(self, data): diff --git a/tests/messages_tests/test_cookie.py b/tests/messages_tests/test_cookie.py index 5d5fb42d67..7f4672de8b 100644 --- a/tests/messages_tests/test_cookie.py +++ b/tests/messages_tests/test_cookie.py @@ -141,7 +141,7 @@ class CookieTests(BaseTests, SimpleTestCase): }, Message(constants.INFO, 'message %s'), ] - encoder = MessageEncoder(separators=(',', ':')) + encoder = MessageEncoder() value = encoder.encode(messages) decoded_messages = json.loads(value, cls=MessageDecoder) self.assertEqual(messages, decoded_messages) @@ -166,7 +166,7 @@ class CookieTests(BaseTests, SimpleTestCase): storage = self.storage_class(self.get_request()) messages = ['this', 'that'] # Encode/decode a message using the pre-Django 3.1 hash. - encoder = MessageEncoder(separators=(',', ':')) + encoder = MessageEncoder() value = encoder.encode(messages) encoded_messages = '%s$%s' % (storage._legacy_hash(value), value) decoded_messages = storage._decode(encoded_messages) |
