summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2015-09-05 10:31:09 -0400
committerTim Graham <timograham@gmail.com>2015-09-23 19:31:11 -0400
commite6cfa08f2d478cb962528188dff5cf4daf5e5f9b (patch)
tree98ac349152a008c1c2e4e6c9d6d04bc92481484c
parent9114fe8adabe626619665c9853ba952798da5530 (diff)
Refs #22804 -- Made an unsafe value of 'sep' in Signer an exception.
Per deprecation timeline.
-rw-r--r--django/core/signing.py8
-rw-r--r--tests/signing/tests.py8
2 files changed, 6 insertions, 10 deletions
diff --git a/django/core/signing.py b/django/core/signing.py
index 61b43316db..9d4c665ad2 100644
--- a/django/core/signing.py
+++ b/django/core/signing.py
@@ -40,13 +40,11 @@ import datetime
import json
import re
import time
-import warnings
import zlib
from django.conf import settings
from django.utils import baseconv
from django.utils.crypto import constant_time_compare, salted_hmac
-from django.utils.deprecation import RemovedInDjango110Warning
from django.utils.encoding import force_bytes, force_str, force_text
from django.utils.module_loading import import_string
@@ -158,8 +156,10 @@ class Signer(object):
self.key = key or settings.SECRET_KEY
self.sep = force_str(sep)
if _SEP_UNSAFE.match(self.sep):
- warnings.warn('Unsafe Signer separator: %r (cannot be empty or consist of only A-z0-9-_=)' % sep,
- RemovedInDjango110Warning)
+ raise ValueError(
+ 'Unsafe Signer separator: %r (cannot be empty or consist of '
+ 'only A-z0-9-_=)' % sep,
+ )
self.salt = force_str(salt or
'%s.%s' % (self.__class__.__module__, self.__class__.__name__))
diff --git a/tests/signing/tests.py b/tests/signing/tests.py
index a8de1b0cbc..1d084e0252 100644
--- a/tests/signing/tests.py
+++ b/tests/signing/tests.py
@@ -1,7 +1,6 @@
from __future__ import unicode_literals
import datetime
-import warnings
from django.core import signing
from django.test import SimpleTestCase
@@ -121,14 +120,11 @@ class TestSigner(SimpleTestCase):
def test_invalid_sep(self):
"""should warn on invalid separator"""
+ msg = 'Unsafe Signer separator: %r (cannot be empty or consist of only A-z0-9-_=)'
separators = ['', '-', 'abc']
for sep in separators:
- with warnings.catch_warnings(record=True) as recorded:
- warnings.simplefilter('always')
+ with self.assertRaisesMessage(ValueError, msg % sep):
signing.Signer(sep=sep)
- self.assertEqual(len(recorded), 1)
- msg = str(recorded[0].message)
- self.assertTrue(msg.startswith('Unsafe Signer separator'))
class TestTimestampSigner(SimpleTestCase):