mirror of
https://github.com/python/cpython.git
synced 2025-08-03 00:23:06 +00:00
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.
This commit is contained in:
parent
3196efe1a5
commit
79aa5bf5ed
2 changed files with 41 additions and 20 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue