diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2021-08-13 11:15:27 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-13 11:15:27 (GMT) |
commit | 6d134864d62b1838b12e31ec6357b9f0c078deae (patch) | |
tree | 78812ab0a70a1bbcdaa9f61773af6d469b553608 | |
parent | 45a97d91a42795fb0b220e67ee25a14b940c7e50 (diff) | |
download | cpython-6d134864d62b1838b12e31ec6357b9f0c078deae.zip cpython-6d134864d62b1838b12e31ec6357b9f0c078deae.tar.gz cpython-6d134864d62b1838b12e31ec6357b9f0c078deae.tar.bz2 |
Added test case based on recommended test cases from RFC 4648 (GH-27747)
(cherry picked from commit 230403a6a19042b174374c3825904d2e857f38b0)
Co-authored-by: andrei kulakov <andrei.avk@gmail.com>
-rw-r--r-- | Lib/test/test_base64.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Lib/test/test_base64.py b/Lib/test/test_base64.py index 4f62c41..4184924 100644 --- a/Lib/test/test_base64.py +++ b/Lib/test/test_base64.py @@ -714,6 +714,45 @@ class BaseXYTestCase(unittest.TestCase): def test_ErrorHeritage(self): self.assertTrue(issubclass(binascii.Error, ValueError)) + def test_RFC4648_test_cases(self): + # test cases from RFC 4648 section 10 + b64encode = base64.b64encode + b32hexencode = base64.b32hexencode + b32encode = base64.b32encode + b16encode = base64.b16encode + + self.assertEqual(b64encode(b""), b"") + self.assertEqual(b64encode(b"f"), b"Zg==") + self.assertEqual(b64encode(b"fo"), b"Zm8=") + self.assertEqual(b64encode(b"foo"), b"Zm9v") + self.assertEqual(b64encode(b"foob"), b"Zm9vYg==") + self.assertEqual(b64encode(b"fooba"), b"Zm9vYmE=") + self.assertEqual(b64encode(b"foobar"), b"Zm9vYmFy") + + self.assertEqual(b32encode(b""), b"") + self.assertEqual(b32encode(b"f"), b"MY======") + self.assertEqual(b32encode(b"fo"), b"MZXQ====") + self.assertEqual(b32encode(b"foo"), b"MZXW6===") + self.assertEqual(b32encode(b"foob"), b"MZXW6YQ=") + self.assertEqual(b32encode(b"fooba"), b"MZXW6YTB") + self.assertEqual(b32encode(b"foobar"), b"MZXW6YTBOI======") + + self.assertEqual(b32hexencode(b""), b"") + self.assertEqual(b32hexencode(b"f"), b"CO======") + self.assertEqual(b32hexencode(b"fo"), b"CPNG====") + self.assertEqual(b32hexencode(b"foo"), b"CPNMU===") + self.assertEqual(b32hexencode(b"foob"), b"CPNMUOG=") + self.assertEqual(b32hexencode(b"fooba"), b"CPNMUOJ1") + self.assertEqual(b32hexencode(b"foobar"), b"CPNMUOJ1E8======") + + self.assertEqual(b16encode(b""), b"") + self.assertEqual(b16encode(b"f"), b"66") + self.assertEqual(b16encode(b"fo"), b"666F") + self.assertEqual(b16encode(b"foo"), b"666F6F") + self.assertEqual(b16encode(b"foob"), b"666F6F62") + self.assertEqual(b16encode(b"fooba"), b"666F6F6261") + self.assertEqual(b16encode(b"foobar"), b"666F6F626172") + class TestMain(unittest.TestCase): def tearDown(self): |