summaryrefslogtreecommitdiff
path: root/passlib/tests/test_handlers_django.py
diff options
context:
space:
mode:
Diffstat (limited to 'passlib/tests/test_handlers_django.py')
-rw-r--r--passlib/tests/test_handlers_django.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/passlib/tests/test_handlers_django.py b/passlib/tests/test_handlers_django.py
index 50d2b33..f7c9a0d 100644
--- a/passlib/tests/test_handlers_django.py
+++ b/passlib/tests/test_handlers_django.py
@@ -5,6 +5,7 @@
from __future__ import with_statement
# core
import logging; log = logging.getLogger(__name__)
+import re
import warnings
# site
# pkg
@@ -13,7 +14,8 @@ from passlib.utils import repeat_string
from passlib.utils.compat import u
from passlib.tests.utils import TestCase, HandlerCase, skipUnless, SkipTest
from passlib.tests.test_handlers import UPASS_USD, UPASS_TABLE
-from passlib.tests.test_ext_django import DJANGO_VERSION, MIN_DJANGO_VERSION
+from passlib.tests.test_ext_django import DJANGO_VERSION, MIN_DJANGO_VERSION, \
+ check_django_hasher_has_backend
# module
#=============================================================================
@@ -27,6 +29,10 @@ def vstr(version):
return ".".join(str(e) for e in version)
class _DjangoHelper(TestCase):
+ """
+ mixin for HandlerCase subclasses that are testing a hasher
+ which is also present in django.
+ """
__unittest_skip = True
#: minimum django version where hash alg is present / that we support testing against
@@ -40,10 +46,17 @@ class _DjangoHelper(TestCase):
max_django_version = None
def _require_django_support(self):
+ # make sure min django version
if DJANGO_VERSION < self.min_django_version:
raise self.skipTest("Django >= %s not installed" % vstr(self.min_django_version))
if self.max_django_version and DJANGO_VERSION > self.max_django_version:
raise self.skipTest("Django <= %s not installed" % vstr(self.max_django_version))
+
+ # make sure django has a backend for specified hasher
+ name = self.handler.django_name
+ if not check_django_hasher_has_backend(name):
+ raise self.skipTest('django hasher %r not available' % name)
+
return True
extra_fuzz_verifiers = HandlerCase.fuzz_verifiers + (