From e6cfa08f2d478cb962528188dff5cf4daf5e5f9b Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 5 Sep 2015 10:31:09 -0400 Subject: [PATCH] Refs #22804 -- Made an unsafe value of 'sep' in Signer an exception. Per deprecation timeline. --- django/core/signing.py | 8 ++++---- tests/signing/tests.py | 8 ++------ 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/django/core/signing.py b/django/core/signing.py index 61b43316db6..9d4c665ad2f 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 a8de1b0cbc2..1d084e02522 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):