(self)
| 334 | self.assertRaises(binascii.Error, base64.b64decode, 'abc') |
| 335 | |
| 336 | def test_b64decode_padded(self): |
| 337 | b64decode = base64.b64decode |
| 338 | urlsafe_b64decode = base64.urlsafe_b64decode |
| 339 | def check(data, expected, padded=0): |
| 340 | if b'=' in data: |
| 341 | with self.assertRaisesRegex(binascii.Error, 'Padding not allowed'): |
| 342 | b64decode(data, padded=False, validate=True) |
| 343 | self.assertEqual(b64decode(data, padded=False, ignorechars=b'='), |
| 344 | expected) |
| 345 | self.assertEqual(urlsafe_b64decode(data, padded=True), expected) |
| 346 | self.assertEqual(urlsafe_b64decode(data, padded=False), expected) |
| 347 | data = data.replace(b'=', b'') |
| 348 | self.assertEqual(b64decode(data, padded=False), expected) |
| 349 | self.assertEqual(b64decode(data, padded=False, validate=True), |
| 350 | expected) |
| 351 | self.assertEqual(urlsafe_b64decode(data), expected) |
| 352 | |
| 353 | check(b'', b'') |
| 354 | check(b'YQ==', b'a') |
| 355 | check(b'YWI=', b'ab') |
| 356 | check(b'YWJj', b'abc') |
| 357 | check(b'Y=WJj', b'abc') |
| 358 | check(b'YW=Jj', b'abc') |
| 359 | check(b'YWJ=j', b'abc') |
| 360 | |
| 361 | with self.assertRaisesRegex(binascii.Error, 'Incorrect padding'): |
| 362 | urlsafe_b64decode(b'YQ', padded=True) |
| 363 | with self.assertRaisesRegex(binascii.Error, 'Incorrect padding'): |
| 364 | urlsafe_b64decode(b'YWI', padded=True) |
| 365 | |
| 366 | def _common_test_ignorechars(self, func): |
| 367 | eq = self.assertEqual |
nothing calls this directly
no test coverage detected