mirror of
https://github.com/django/django.git
synced 2025-08-03 18:38:50 +00:00
Fixed #32643 -- Fixed decoding of messages in the pre-Django 3.2 format.
Thanks Jan Pieter Waagmeester for the report.
Regression in 2d6179c819
.
This commit is contained in:
parent
ca98729055
commit
4511d14598
3 changed files with 11 additions and 3 deletions
|
@ -1,3 +1,4 @@
|
|||
import binascii
|
||||
import json
|
||||
import random
|
||||
|
||||
|
@ -7,7 +8,7 @@ from django.contrib.messages.storage.base import Message
|
|||
from django.contrib.messages.storage.cookie import (
|
||||
CookieStorage, MessageDecoder, MessageEncoder,
|
||||
)
|
||||
from django.core.signing import get_cookie_signer
|
||||
from django.core.signing import b64_decode, get_cookie_signer
|
||||
from django.test import SimpleTestCase, override_settings
|
||||
from django.utils.crypto import get_random_string
|
||||
from django.utils.safestring import SafeData, mark_safe
|
||||
|
@ -183,10 +184,12 @@ class CookieTests(BaseTests, SimpleTestCase):
|
|||
# RemovedInDjango41Warning: pre-Django 3.2 encoded messages will be
|
||||
# invalid.
|
||||
storage = self.storage_class(self.get_request())
|
||||
messages = ['this', 'that']
|
||||
messages = ['this', Message(0, 'Successfully signed in as admin@example.org')]
|
||||
# Encode/decode a message using the pre-Django 3.2 format.
|
||||
encoder = MessageEncoder()
|
||||
value = encoder.encode(messages)
|
||||
with self.assertRaises(binascii.Error):
|
||||
b64_decode(value.encode())
|
||||
signer = get_cookie_signer(salt=storage.key_salt)
|
||||
encoded_messages = signer.sign(value)
|
||||
decoded_messages = storage._decode(encoded_messages)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue