summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorMartin Panter <vadmium+py@gmail.com>2016-02-24 01:08:43 (GMT)
committerMartin Panter <vadmium+py@gmail.com>2016-02-24 01:08:43 (GMT)
commit150ea1a1dffd624b4cd6c2608ece249d12588907 (patch)
tree7fc2379b114bb54c26cd877296d08443d2b9a824 /Lib/test
parent3d2778c8dacd19abd7f92c2d3e3563aa190e56bf (diff)
parentee3074e1f473c2ebdc89e2b6889747fc586002e9 (diff)
downloadcpython-150ea1a1dffd624b4cd6c2608ece249d12588907.zip
cpython-150ea1a1dffd624b4cd6c2608ece249d12588907.tar.gz
cpython-150ea1a1dffd624b4cd6c2608ece249d12588907.tar.bz2
Issue #22088: Merge base64 docs from 3.5
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_base64.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/Lib/test/test_base64.py b/Lib/test/test_base64.py
index a0f548d..9b853a8 100644
--- a/Lib/test/test_base64.py
+++ b/Lib/test/test_base64.py
@@ -243,14 +243,26 @@ class BaseXYTestCase(unittest.TestCase):
(b'@@', b''),
(b'!', b''),
(b'YWJj\nYWI=', b'abcab'))
+ funcs = (
+ base64.b64decode,
+ base64.standard_b64decode,
+ base64.urlsafe_b64decode,
+ )
for bstr, res in tests:
- self.assertEqual(base64.b64decode(bstr), res)
- self.assertEqual(base64.b64decode(bstr.decode('ascii')), res)
+ for func in funcs:
+ with self.subTest(bstr=bstr, func=func):
+ self.assertEqual(func(bstr), res)
+ self.assertEqual(func(bstr.decode('ascii')), res)
with self.assertRaises(binascii.Error):
base64.b64decode(bstr, validate=True)
with self.assertRaises(binascii.Error):
base64.b64decode(bstr.decode('ascii'), validate=True)
+ # Normal alphabet characters not discarded when alternative given
+ res = b'\xFB\xEF\xBE\xFF\xFF\xFF'
+ self.assertEqual(base64.b64decode(b'++[[//]]', b'[]'), res)
+ self.assertEqual(base64.urlsafe_b64decode(b'++--//__'), res)
+
def test_b32encode(self):
eq = self.assertEqual
eq(base64.b32encode(b''), b'')
@@ -360,6 +372,10 @@ class BaseXYTestCase(unittest.TestCase):
b'\x01\x02\xab\xcd\xef')
eq(base64.b16decode(array('B', b"0102abcdef"), True),
b'\x01\x02\xab\xcd\xef')
+ # Non-alphabet characters
+ self.assertRaises(binascii.Error, base64.b16decode, '0102AG')
+ # Incorrect "padding"
+ self.assertRaises(binascii.Error, base64.b16decode, '010')
def test_a85encode(self):
eq = self.assertEqual