summaryrefslogtreecommitdiff
path: root/passlib/tests/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'passlib/tests/utils.py')
-rw-r--r--passlib/tests/utils.py28
1 files changed, 12 insertions, 16 deletions
diff --git a/passlib/tests/utils.py b/passlib/tests/utils.py
index 9e1dd3d..8c10918 100644
--- a/passlib/tests/utils.py
+++ b/passlib/tests/utils.py
@@ -1676,36 +1676,32 @@ def _hobj_to_dict(hobj):
if key not in exclude_keys
)
-def create_backend_case(base, name, module="passlib.tests.test_handlers"):
+def create_backend_case(base_class, backend, module=None):
"create a test case for specific backend of a multi-backend handler"
#get handler, figure out if backend should be tested
- handler = base.handler
+ handler = base_class.handler
assert hasattr(handler, "backends"), "handler must support uh.HasManyBackends protocol"
- enable, reason = _enable_backend_case(handler, name)
+ enable, skip_reason = _enable_backend_case(handler, backend)
- #UT1 doesn't support skipping whole test cases,
- #so we just return None.
+ #UT1 doesn't support skipping whole test cases, so we just return None.
if not enable and ut_version < 2:
return None
- #make classname match what it's stored under, to be tidy
- cname = name.title().replace("_","") + "_" + base.__name__.lstrip("_")
-
#create subclass of 'base' which uses correct backend
- subcase = type(
- cname,
- (base,),
+ backend_class = type(
+ "%s_%s" % (backend, handler.name),
+ (base_class,),
dict(
- case_prefix = "%s (%s backend)" % (handler.name, name),
- backend = name,
- __module__=module,
+ case_prefix = "%s (%s backend)" % (handler.name, backend),
+ backend = backend,
+ __module__= module or base_class.__module__,
)
)
if not enable:
- subcase = unittest.skip(reason)(subcase)
+ backend_class = unittest.skip(skip_reason)(backend_class)
- return subcase
+ return backend_class
#=========================================================
#misc helpers