@@ -243,7 +243,7 @@ def test_b64decode(self):
243243 b"YWI=" : b"ab" ,
244244 b"YWJj" : b"abc" ,
245245 b"YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE"
246- b"RUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NT "
246+ b"RUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0 \n NT "
247247 b"Y3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==" :
248248
249249 b"abcdefghijklmnopqrstuvwxyz"
@@ -313,31 +313,36 @@ def test_b64decode_invalid_chars(self):
313313 (b'!' , b'' ),
314314 (b"YWJj\n " , b"abc" ),
315315 (b'YWJj\n YWI=' , b'abcab' ))
316+ funcs = (
317+ base64 .b64decode ,
318+ base64 .standard_b64decode ,
319+ base64 .urlsafe_b64decode ,
320+ )
316321 for bstr , res in tests :
317- with self .subTest (bstr = bstr ):
318- for data in bstr , bstr .decode ('ascii' ):
319- self .assertEqual (base64 .b64decode (data , validate = False ), res )
320- self .assertRaises (binascii .Error , base64 .b64decode , data )
321- self .assertRaises (binascii .Error , base64 .standard_b64decode , data )
322- self .assertRaises (binascii .Error , base64 .urlsafe_b64decode , data )
322+ for func in funcs :
323+ with self .subTest (bstr = bstr , func = func ):
324+ self .assertEqual (func (bstr ), res )
325+ self .assertEqual (func (bstr .decode ('ascii' )), res )
326+ with self .assertRaises (binascii .Error ):
327+ base64 .b64decode (bstr , validate = True )
328+ with self .assertRaises (binascii .Error ):
329+ base64 .b64decode (bstr .decode ('ascii' ), validate = True )
323330
324331 # Normal alphabet characters will be discarded when alternative given
325332 with self .assertWarns (FutureWarning ):
326- self .assertEqual (base64 .b64decode (b'++++' , altchars = b'-_' , validate = False ),
333+ self .assertEqual (base64 .b64decode (b'++++' , altchars = b'-_' ),
327334 b'\xfb \xef \xbe ' )
328335 with self .assertWarns (FutureWarning ):
329- self .assertEqual (base64 .b64decode (b'////' , altchars = b'-_' , validate = False ),
336+ self .assertEqual (base64 .b64decode (b'////' , altchars = b'-_' ),
330337 b'\xff \xff \xff ' )
338+ self .assertEqual (base64 .urlsafe_b64decode (b'++++' ), b'' )
339+ self .assertEqual (base64 .urlsafe_b64decode (b'////' ), b'' )
331340 with self .assertRaises (binascii .Error ):
332- base64 .urlsafe_b64decode (b'++++' )
333- with self .assertRaises (binascii .Error ):
334- base64 .urlsafe_b64decode (b'////' )
335- with self .assertRaises (binascii .Error ):
336- base64 .b64decode (b'++++' , altchars = b'-_' )
341+ base64 .b64decode (b'++++' , altchars = b'-_' , validate = True )
337342 with self .assertRaises (binascii .Error ):
338- base64 .b64decode (b'////' , altchars = b'-_' )
343+ base64 .b64decode (b'////' , altchars = b'-_' , validate = True )
339344 with self .assertRaises (binascii .Error ):
340- base64 .b64decode (b'+/!' , altchars = b'-_' , validate = False )
345+ base64 .b64decode (b'+/!' , altchars = b'-_' )
341346
342347 def _altchars_strategy ():
343348 """Generate 'altchars' for base64 encoding."""
0 commit comments