mirror of
https://github.com/python/cpython.git
synced 2026-04-15 00:00:57 +00:00
gh-148153: Do not use assert for parameter validation in base64 (GH-148154)
base64.b32encode() now always raises ValueError instead of AssertionError for the value of map01 with invalid length.
This commit is contained in:
parent
a95ee3a21d
commit
d0e204fb1d
4 changed files with 7 additions and 4 deletions
|
|
@ -69,9 +69,6 @@ POST request.
|
|||
after at most every *wrapcol* characters.
|
||||
If *wrapcol* is zero (default), do not insert any newlines.
|
||||
|
||||
May assert or raise a :exc:`ValueError` if the length of *altchars* is not 2. Raises a
|
||||
:exc:`TypeError` if *altchars* is not a :term:`bytes-like object`.
|
||||
|
||||
.. versionchanged:: 3.15
|
||||
Added the *padded* and *wrapcol* parameters.
|
||||
|
||||
|
|
|
|||
|
|
@ -237,7 +237,6 @@ def b32decode(s, casefold=False, map01=None, *, padded=True, ignorechars=b''):
|
|||
# either L (el) or I (eye).
|
||||
if map01 is not None:
|
||||
map01 = _bytes_from_decode_data(map01)
|
||||
assert len(map01) == 1, repr(map01)
|
||||
s = s.translate(bytes.maketrans(b'01', b'O' + map01))
|
||||
if casefold:
|
||||
s = s.upper()
|
||||
|
|
|
|||
|
|
@ -607,6 +607,11 @@ def test_b32decode_map01(self):
|
|||
self.assertRaises(binascii.Error, base64.b32decode, b'M1O23456')
|
||||
self.assertRaises(binascii.Error, base64.b32decode, b'ML023456')
|
||||
self.assertRaises(binascii.Error, base64.b32decode, b'MI023456')
|
||||
self.assertRaises(ValueError, base64.b32decode, b'', map01=b'')
|
||||
self.assertRaises(ValueError, base64.b32decode, b'', map01=b'LI')
|
||||
self.assertRaises(TypeError, base64.b32decode, b'', map01=0)
|
||||
eq(base64.b32decode(b'MLO23456', map01=None), res_L)
|
||||
self.assertRaises(binascii.Error, base64.b32decode, b'M1023456', map01=None)
|
||||
|
||||
data = b'M1023456'
|
||||
data_str = data.decode('ascii')
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
:func:`base64.b32encode` now always raises :exc:`ValueError` instead of
|
||||
:exc:`AssertionError` for the value of *map01* with invalid length.
|
||||
Loading…
Add table
Add a link
Reference in a new issue