summaryrefslogtreecommitdiff
path: root/tests/auth_tests/test_tokens.py
diff options
context:
space:
mode:
authorjannh <jannh@wh-netz.de>2017-05-26 13:37:36 +0200
committerTim Graham <timograham@gmail.com>2017-05-26 07:37:36 -0400
commitc930c241f8f1ccf3a7848b843628eacdb983d70a (patch)
tree35ffdd5672b0415a711c821cbff759aee699a368 /tests/auth_tests/test_tokens.py
parent2cbb095bec757b804e8b6d9d0930ef3c6446a591 (diff)
Fixed #28017 -- Allowed customizing PasswordResetTokenGenerator's secret.
Diffstat (limited to 'tests/auth_tests/test_tokens.py')
-rw-r--r--tests/auth_tests/test_tokens.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/auth_tests/test_tokens.py b/tests/auth_tests/test_tokens.py
index 0662ec513e..eb06e00425 100644
--- a/tests/auth_tests/test_tokens.py
+++ b/tests/auth_tests/test_tokens.py
@@ -55,3 +55,24 @@ class TokenGeneratorTest(TestCase):
tk1 = p0.make_token(user)
self.assertIs(p0.check_token(None, tk1), False)
self.assertIs(p0.check_token(user, None), False)
+
+ def test_token_with_different_secret(self):
+ """
+ A valid token can be created with a secret other than SECRET_KEY by
+ using the PasswordResetTokenGenerator.secret attribute.
+ """
+ user = User.objects.create_user('tokentestuser', 'test2@example.com', 'testpw')
+ new_secret = 'abcdefghijkl'
+ # Create and check a token with a different secret.
+ p0 = PasswordResetTokenGenerator()
+ p0.secret = new_secret
+ tk0 = p0.make_token(user)
+ self.assertTrue(p0.check_token(user, tk0))
+ # Create and check a token with the default secret.
+ p1 = PasswordResetTokenGenerator()
+ self.assertEqual(p1.secret, settings.SECRET_KEY)
+ self.assertNotEqual(p1.secret, new_secret)
+ tk1 = p1.make_token(user)
+ # Tokens created with a different secret don't validate.
+ self.assertFalse(p0.check_token(user, tk1))
+ self.assertFalse(p1.check_token(user, tk0))