summaryrefslogtreecommitdiff
path: root/tests/sessions_tests
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2021-01-11 21:27:01 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-01-14 17:50:04 +0100
commit8250145a0cbfd15aa16c2ad4e2235d1afe3a7359 (patch)
tree60b0d8992356c648fc6076f202f3b028b200f261 /tests/sessions_tests
parent66b4046d68921edc7c83076da4aafd307f7dd19b (diff)
downloaddjango-8250145a0cbfd15aa16c2ad4e2235d1afe3a7359.tar.gz
Refs #31274 -- Removed support for the pre-Django 3.1 encoding format of sessions.
Per deprecation timeline.
Diffstat (limited to 'tests/sessions_tests')
-rw-r--r--tests/sessions_tests/tests.py26
1 files changed, 6 insertions, 20 deletions
diff --git a/tests/sessions_tests/tests.py b/tests/sessions_tests/tests.py
index 73d2a13a9f..c2743ef48b 100644
--- a/tests/sessions_tests/tests.py
+++ b/tests/sessions_tests/tests.py
@@ -31,13 +31,13 @@ from django.core import management
from django.core.cache import caches
from django.core.cache.backends.base import InvalidCacheBackendError
from django.core.exceptions import ImproperlyConfigured
+from django.core.signing import TimestampSigner
from django.http import HttpResponse
from django.test import (
RequestFactory, SimpleTestCase, TestCase, ignore_warnings,
override_settings,
)
from django.utils import timezone
-from django.utils.deprecation import RemovedInDjango40Warning
from .models import SessionStore as CustomDatabaseSession
@@ -315,25 +315,6 @@ class SessionTestsMixin:
encoded = self.session.encode(data)
self.assertEqual(self.session.decode(encoded), data)
- @override_settings(SECRET_KEY='django_tests_secret_key')
- def test_decode_legacy(self):
- # RemovedInDjango40Warning: pre-Django 3.1 sessions will be invalid.
- legacy_encoded = (
- 'OWUzNTNmNWQxNTBjOWExZmM4MmQ3NzNhMDRmMjU4NmYwNDUyNGI2NDp7ImEgdGVzd'
- 'CBrZXkiOiJhIHRlc3QgdmFsdWUifQ=='
- )
- self.assertEqual(
- self.session.decode(legacy_encoded),
- {'a test key': 'a test value'},
- )
-
- @ignore_warnings(category=RemovedInDjango40Warning)
- def test_default_hashing_algorith_legacy_decode(self):
- with self.settings(DEFAULT_HASHING_ALGORITHM='sha1'):
- data = {'a test key': 'a test value'}
- encoded = self.session.encode(data)
- self.assertEqual(self.session._legacy_decode(encoded), data)
-
def test_decode_failure_logged_to_security(self):
tests = [
base64.b64encode(b'flaskdj:alkdjf').decode('ascii'),
@@ -346,6 +327,11 @@ class SessionTestsMixin:
# The failed decode is logged.
self.assertIn('Session data corrupted', cm.output[0])
+ def test_decode_serializer_exception(self):
+ signer = TimestampSigner(salt=self.session.key_salt)
+ encoded = signer.sign(b'invalid data')
+ self.assertEqual(self.session.decode(encoded), {})
+
def test_actual_expiry(self):
# this doesn't work with JSONSerializer (serializing timedelta)
with override_settings(SESSION_SERIALIZER='django.contrib.sessions.serializers.PickleSerializer'):