mirror of
https://github.com/python/cpython.git
synced 2025-08-01 15:43:13 +00:00
Issue #3745: Undo the requirement for new buffer API only objects to be passed
to hashlib functions in python 2.x. The module now uses the 's*' for argument parsing which auto encodes unicode objects to the system default encoding for us.
This commit is contained in:
parent
c2fa18ca20
commit
443ec6875f
6 changed files with 86 additions and 159 deletions
|
@ -71,18 +71,23 @@ class HashLibTestCase(unittest.TestCase):
|
|||
computed = hashlib.new(name, data).hexdigest()
|
||||
self.assertEqual(computed, digest)
|
||||
|
||||
def check_no_unicode(self, algorithm_name):
|
||||
def check_unicode(self, algorithm_name):
|
||||
# Unicode objects are not allowed as input.
|
||||
self.assertRaises(TypeError, getattr(hashlib, algorithm_name), u'spam')
|
||||
self.assertRaises(TypeError, hashlib.new, algorithm_name, u'spam')
|
||||
expected = hashlib.new(algorithm_name, str(u'spam')).hexdigest()
|
||||
self.assertEqual(getattr(hashlib, algorithm_name)(u'spam').hexdigest(),
|
||||
expected)
|
||||
self.assertEqual(hashlib.new(algorithm_name, u'spam').hexdigest(),
|
||||
expected)
|
||||
|
||||
def test_no_unicode(self):
|
||||
self.check_no_unicode('md5')
|
||||
self.check_no_unicode('sha1')
|
||||
self.check_no_unicode('sha224')
|
||||
self.check_no_unicode('sha256')
|
||||
self.check_no_unicode('sha384')
|
||||
self.check_no_unicode('sha512')
|
||||
def test_unicode(self):
|
||||
# In python 2.x unicode is auto-encoded to the system default encoding
|
||||
# when passed to hashlib functions.
|
||||
self.check_unicode('md5')
|
||||
self.check_unicode('sha1')
|
||||
self.check_unicode('sha224')
|
||||
self.check_unicode('sha256')
|
||||
self.check_unicode('sha384')
|
||||
self.check_unicode('sha512')
|
||||
|
||||
def test_case_md5_0(self):
|
||||
self.check('md5', '', 'd41d8cd98f00b204e9800998ecf8427e')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue