diff options
| author | Eli Collins <elic@assurancetechnologies.com> | 2011-12-22 20:04:07 -0500 |
|---|---|---|
| committer | Eli Collins <elic@assurancetechnologies.com> | 2011-12-22 20:04:07 -0500 |
| commit | 9c49b67fee5d801aa1422aab607e058dd33763fd (patch) | |
| tree | c4b8154dd1ffa229c77220a2ff7260a64bc10bab /passlib/tests | |
| parent | ef5e536b7983c2180311ce2996796ed9f483650c (diff) | |
| download | passlib-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.py | 37 |
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 |
