diff -r 1b5ef05d6ced Doc/library/base64.rst --- a/Doc/library/base64.rst Sun May 19 11:49:32 2013 +0300 +++ b/Doc/library/base64.rst Sun May 19 13:02:47 2013 +0300 @@ -103,7 +103,7 @@ digit 0 is always mapped to the letter O). For security purposes the default is ``None``, so that 0 and 1 are not allowed in the input. - The decoded byte string is returned. A :exc:`TypeError` is raised if *s* were + The decoded byte string is returned. A :exc:`binascii.Error` is raised if *s* were incorrectly padded or if there are non-alphabet characters present in the string. diff -r 1b5ef05d6ced Lib/base64.py --- a/Lib/base64.py Sun May 19 11:49:32 2013 +0300 +++ b/Lib/base64.py Sun May 19 13:02:47 2013 +0300 @@ -222,7 +222,7 @@ for c in quanta: acc = (acc << 5) + b32rev[c] except KeyError: - raise TypeError('Non-base32 digit found') + raise binascii.Error('Non-base32 digit found') decoded += acc.to_bytes(5, 'big') # Process the last, partial quanta if padchars: diff -r 1b5ef05d6ced Lib/test/test_base64.py --- a/Lib/test/test_base64.py Sun May 19 11:49:32 2013 +0300 +++ b/Lib/test/test_base64.py Sun May 19 13:02:47 2013 +0300 @@ -244,8 +244,8 @@ eq(base64.b32decode(data, True), res) eq(base64.b32decode(data.decode('ascii'), True), res) - self.assertRaises(TypeError, base64.b32decode, b'me======') - self.assertRaises(TypeError, base64.b32decode, 'me======') + self.assertRaises(binascii.Error, base64.b32decode, b'me======') + self.assertRaises(binascii.Error, base64.b32decode, 'me======') # Mapping zero and one eq(base64.b32decode(b'MLO23456'), b'b\xdd\xad\xf3\xbe') @@ -262,9 +262,11 @@ eq(base64.b32decode(data_str, map01=map01), res) eq(base64.b32decode(data, map01=map01_str), res) eq(base64.b32decode(data_str, map01=map01_str), res) + self.assertRaises(binascii.Error, base64.b32decode, data) + self.assertRaises(binascii.Error, base64.b32decode, data_str) def test_b32decode_error(self): - for data in [b'abc', b'ABCDEF==']: + for data in [b'abc', b'ABCDEF==', b'==ABCDEF']: with self.assertRaises(binascii.Error): base64.b32decode(data) with self.assertRaises(binascii.Error):