# HG changeset patch # Parent 781454f792c47babc78dcf7dd3b7e306d5d7a430 Issue #22406: Add tests for UU-decoding with garbage padding diff -r 781454f792c4 -r d80f9977735a Lib/test/test_uu.py --- a/Lib/test/test_uu.py Sun Sep 14 19:19:49 2014 -0700 +++ b/Lib/test/test_uu.py Mon Sep 15 06:23:20 2014 +0000 @@ -92,6 +92,27 @@ self.fail("No exception raised") except uu.Error as e: self.assertEqual(str(e), "No valid begin line found in input file") + + def test_garbage_padding(self): + encodedtext = ( + b"begin 644 file\n" + # length 1; bits 001100 111111 111111 111111 + b"\x21\x2C\x5F\x5F\x5F\n" + b"\x20\n" + b"end\n" + ) + plaintext = b"\x33" # 00110011 + + with self.subTest("uu.decode()"): + inp = io.BytesIO(encodedtext) + out = io.BytesIO() + uu.decode(inp, out, quiet=True) + self.assertEqual(out.getvalue(), plaintext) + + with self.subTest("uu-codec"): + import codecs + decoded = codecs.decode(encodedtext, "uu-codec") + self.assertEqual(decoded, plaintext) class UUStdIOTest(unittest.TestCase):