summaryrefslogtreecommitdiff
path: root/passlib/tests
diff options
context:
space:
mode:
authorEli Collins <elic@assurancetechnologies.com>2011-12-22 20:04:07 -0500
committerEli Collins <elic@assurancetechnologies.com>2011-12-22 20:04:07 -0500
commit9c49b67fee5d801aa1422aab607e058dd33763fd (patch)
treec4b8154dd1ffa229c77220a2ff7260a64bc10bab /passlib/tests
parentef5e536b7983c2180311ce2996796ed9f483650c (diff)
downloadpasslib-9c49b67fee5d801aa1422aab607e058dd33763fd.tar.gz
PrefixWrapper: added .ident and .ident_values proxies; dir() now reports proxies attrs
Diffstat (limited to 'passlib/tests')
-rw-r--r--passlib/tests/test_utils_handlers.py37
1 files changed, 35 insertions, 2 deletions
diff --git a/passlib/tests/test_utils_handlers.py b/passlib/tests/test_utils_handlers.py
index 7e4193c..3342570 100644
--- a/passlib/tests/test_utils_handlers.py
+++ b/passlib/tests/test_utils_handlers.py
@@ -10,7 +10,7 @@ from logging import getLogger
import warnings
#site
#pkg
-from passlib.hash import ldap_md5
+from passlib.hash import ldap_md5, sha256_crypt
from passlib.registry import _unload_handler_name as unload_handler_name, \
register_crypt_handler, get_crypt_handler
from passlib.utils import rng, getrandstr, handlers as uh, bytes, b, \
@@ -234,7 +234,7 @@ class SkeletonTest(TestCase):
self.assertTrue(d1.has_backend())
d1.set_backend('a')
self.assertEqual(obj.calc_checksum('s'), 'a')
-
+
#test unknown backend
self.assertRaises(ValueError, d1.set_backend, 'c')
self.assertRaises(ValueError, d1.has_backend, 'c')
@@ -330,6 +330,11 @@ class PrefixWrapperTest(TestCase):
d1 = uh.PrefixWrapper("d1", "ldap_md5", "{XXX}", "{MD5}")
self.assertEqual(d1.name, "d1")
self.assertIs(d1.setting_kwds, ldap_md5.setting_kwds)
+ self.assertFalse('max_rounds' in dir(d1))
+
+ d2 = uh.PrefixWrapper("d2", "sha256_crypt", "{XXX}")
+ self.assertIs(d2.setting_kwds, sha256_crypt.setting_kwds)
+ self.assertTrue('max_rounds' in dir(d2))
def test_11_wrapped_methods(self):
d1 = uh.PrefixWrapper("d1", "ldap_md5", "{XXX}", "{MD5}")
@@ -355,6 +360,34 @@ class PrefixWrapperTest(TestCase):
self.assertRaises(ValueError, d1.verify, "password", lph)
self.assertTrue(d1.verify("password", dph))
+ def test_12_ident(self):
+ # test ident is proxied
+ h = uh.PrefixWrapper("h2", "ldap_md5", "{XXX}")
+ self.assertEqual(h.ident, u"{XXX}{MD5}")
+ self.assertIs(h.ident_values, None)
+
+ # test orig_prefix disabled ident proxy
+ h = uh.PrefixWrapper("h1", "ldap_md5", "{XXX}", "{MD5}")
+ self.assertIs(h.ident, None)
+ self.assertIs(h.ident_values, None)
+
+ # test custom ident overrides default
+ h = uh.PrefixWrapper("h3", "ldap_md5", "{XXX}", ident="{X")
+ self.assertEqual(h.ident, u"{X")
+ self.assertIs(h.ident_values, None)
+
+ # test custom ident must match
+ h = uh.PrefixWrapper("h3", "ldap_md5", "{XXX}", ident="{XXX}A")
+ self.assertRaises(ValueError, uh.PrefixWrapper, "h3", "ldap_md5",
+ "{XXX}", ident="{XY")
+ self.assertRaises(ValueError, uh.PrefixWrapper, "h3", "ldap_md5",
+ "{XXX}", ident="{XXXX")
+
+ # test ident_values is proxied
+ h = uh.PrefixWrapper("h4", "bcrypt", "{XXX}")
+ self.assertIs(h.ident, None)
+ self.assertEqual(h.ident_values, [ u"{XXX}$2$", u"{XXX}$2a$" ])
+
#=========================================================
#sample algorithms - these serve as known quantities
# to test the unittests themselves, as well as other