diff options
author | Gregory P. Smith <greg@krypto.org> | 2011-05-14 22:15:49 (GMT) |
---|---|---|
committer | Gregory P. Smith <greg@krypto.org> | 2011-05-14 22:15:49 (GMT) |
commit | 79aa5bf5ed78fd298c5744a31a867237d9062090 (patch) | |
tree | ee3d5068603d528008559738f8dbaea6be8b97df /Lib/test | |
parent | 3196efe1a5497e7415af05b809c37c3fcd77ef46 (diff) | |
download | cpython-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.py | 18 |
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) |