summaryrefslogtreecommitdiff
path: root/passlib/tests
diff options
context:
space:
mode:
authorEli Collins <elic@assurancetechnologies.com>2011-08-12 17:52:24 -0400
committerEli Collins <elic@assurancetechnologies.com>2011-08-12 17:52:24 -0400
commita78aa856f274d1dcf0fd0d1216edde0ea1ff8197 (patch)
treea6ee4b29dd56fcdf2b5e7acf5622087525d85a3a /passlib/tests
parent468c0e661c89f5c5e198ea00d14c73812b35fa0f (diff)
downloadpasslib-a78aa856f274d1dcf0fd0d1216edde0ea1ff8197.tar.gz
bugfix: make sure ``passlib.hash.__loader__`` attribute writable - needed by GAE [issue 19]
Diffstat (limited to 'passlib/tests')
-rw-r--r--passlib/tests/test_registry.py28
1 files changed, 27 insertions, 1 deletions
diff --git a/passlib/tests/test_registry.py b/passlib/tests/test_registry.py
index c73b474..90f11cf 100644
--- a/passlib/tests/test_registry.py
+++ b/passlib/tests/test_registry.py
@@ -41,13 +41,39 @@ class RegistryTest(TestCase):
def test_hash_proxy(self):
"test passlib.hash proxy object"
+ #check dir works
dir(hash)
+
+ #check repr works
repr(hash)
+
+ #check non-existent attrs raise error
self.assertRaises(AttributeError, getattr, hash, 'fooey')
+ #GAE tries to set __loader__,
+ #make sure that doesn't call register_crypt_handler.
+ old = getattr(hash, "__loader__", None)
+ test = object()
+ hash.__loader__ = test
+ self.assertIs(hash.__loader__, test)
+ if old is None:
+ del hash.__loader__
+ self.assertFalse(hasattr(hash, "__loader__"))
+ else:
+ hash.__loader__ = old
+ self.assertIs(hash.__loader__, old)
+
+ #check storing attr calls register_crypt_handler
+ class dummy_1(uh.StaticHandler):
+ name = "dummy_1"
+ hash.dummy_1 = dummy_1
+ self.assertIs(get_crypt_handler("dummy_1"), dummy_1)
+
+ #check storing under wrong name results in error
+ self.assertRaises(ValueError, setattr, hash, "dummy_1x", dummy_1)
+
def test_register_crypt_handler_path(self):
"test register_crypt_handler_path()"
-
#NOTE: this messes w/ internals of registry, shouldn't be used publically.
paths = registry._handler_locations