summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorGregory P. Smith <greg@krypto.org>2011-05-14 22:15:49 (GMT)
committerGregory P. Smith <greg@krypto.org>2011-05-14 22:15:49 (GMT)
commit79aa5bf5ed78fd298c5744a31a867237d9062090 (patch)
treeee3d5068603d528008559738f8dbaea6be8b97df /Lib/test
parent3196efe1a5497e7415af05b809c37c3fcd77ef46 (diff)
downloadcpython-79aa5bf5ed78fd298c5744a31a867237d9062090.zip
cpython-79aa5bf5ed78fd298c5744a31a867237d9062090.tar.gz
cpython-79aa5bf5ed78fd298c5744a31a867237d9062090.tar.bz2
Fixes Issue #12059: Properly handle missing hash functions even when
the expected builtin modules are not present. This includes a unittest for __get_builtin_constructor() in the face of such an error.
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_hashlib.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py
index fe316fd..17d752b 100644
--- a/Lib/test/test_hashlib.py
+++ b/Lib/test/test_hashlib.py
@@ -118,6 +118,24 @@ class HashLibTestCase(unittest.TestCase):
else:
self.assertTrue(0 == "hashlib didn't reject bogus hash name")
+ def test_get_builtin_constructor(self):
+ get_builtin_constructor = hashlib.__dict__[
+ '__get_builtin_constructor']
+ self.assertRaises(ValueError, get_builtin_constructor, 'test')
+ try:
+ import _md5
+ except ImportError:
+ pass
+ # This forces an ImportError for "import _md5" statements
+ sys.modules['_md5'] = None
+ try:
+ self.assertRaises(ValueError, get_builtin_constructor, 'md5')
+ finally:
+ if '_md5' in locals():
+ sys.modules['_md5'] = _md5
+ else:
+ del sys.modules['_md5']
+
def test_hexdigest(self):
for name in self.supported_hash_names:
h = hashlib.new(name)