Fixed #31359 -- Deprecated get_random_string() calls without an explicit length.

This commit is contained in:
Claude Paroz 2020-03-11 09:47:43 +01:00 committed by Mariusz Felisiak
parent 5cc2c63f90
commit e663f695fb
6 changed files with 47 additions and 9 deletions

View file

@ -1,10 +1,12 @@
import hashlib
import unittest
from django.test import SimpleTestCase
from django.test import SimpleTestCase, ignore_warnings
from django.utils.crypto import (
InvalidAlgorithm, constant_time_compare, pbkdf2, salted_hmac,
InvalidAlgorithm, constant_time_compare, get_random_string, pbkdf2,
salted_hmac,
)
from django.utils.deprecation import RemovedInDjango40Warning
class TestUtilsCryptoMisc(SimpleTestCase):
@ -183,3 +185,14 @@ class TestUtilsCryptoPBKDF2(unittest.TestCase):
def test_default_hmac_alg(self):
kwargs = {'password': b'password', 'salt': b'salt', 'iterations': 1, 'dklen': 20}
self.assertEqual(pbkdf2(**kwargs), hashlib.pbkdf2_hmac(hash_name=hashlib.sha256().name, **kwargs))
class DeprecationTests(SimpleTestCase):
@ignore_warnings(category=RemovedInDjango40Warning)
def test_get_random_string(self):
self.assertEqual(len(get_random_string()), 12)
def test_get_random_string_warning(self):
msg = 'Not providing a length argument is deprecated.'
with self.assertRaisesMessage(RemovedInDjango40Warning, msg):
get_random_string()