From 1243fdf5cb909a00b653dff5efb2e34d27c1cf7e Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 22 Mar 2016 09:47:12 -0400 Subject: [PATCH] Fixed #26395 -- Skipped the CryptPasswordHasher tests on platforms with a dummy crypt module. --- django/contrib/auth/hashers.py | 1 + tests/auth_tests/test_hashers.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/django/contrib/auth/hashers.py b/django/contrib/auth/hashers.py index 7658379871..6cd57f197a 100644 --- a/django/contrib/auth/hashers.py +++ b/django/contrib/auth/hashers.py @@ -602,6 +602,7 @@ class CryptPasswordHasher(BasePasswordHasher): crypt = self._load_library() assert len(salt) == 2 data = crypt.crypt(force_str(password), salt) + assert data is not None # A platform like OpenBSD with a dummy crypt module. # we don't need to store the salt, but Django used to do this return "%s$%s$%s" % (self.algorithm, '', data) diff --git a/tests/auth_tests/test_hashers.py b/tests/auth_tests/test_hashers.py index a43c170ec1..845deee646 100644 --- a/tests/auth_tests/test_hashers.py +++ b/tests/auth_tests/test_hashers.py @@ -19,6 +19,10 @@ try: import crypt except ImportError: crypt = None +else: + # On some platforms (e.g. OpenBSD), crypt.crypt() always return None. + if crypt.crypt('', '') is None: + crypt = None try: import bcrypt