aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/email/test
diff options
context:
space:
mode:
authorR. David Murray <rdmurray@bitdance.com>2010-08-03 23:35:44 +0000
committerR. David Murray <rdmurray@bitdance.com>2010-08-03 23:35:44 +0000
commite06528c64b62abbaa49dedc395e1ce58ad3962fe (patch)
treef18571bb17671e57110e8a93ac356dc39ff52118 /Lib/email/test
parent1f0f2785d9000e0120cca170208004ae0189dd3c (diff)
downloadcpython-e06528c64b62abbaa49dedc395e1ce58ad3962fe.tar.gz
cpython-e06528c64b62abbaa49dedc395e1ce58ad3962fe.zip
Merged revisions 83690 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r83690 | r.david.murray | 2010-08-03 18:14:10 -0400 (Tue, 03 Aug 2010) | 10 lines #3196: if needed pad a short base64 encoded word before trying to decode. The RFCs encourage following Postel's law: be liberal in what you accept. So if someone forgot to pad the base64 encoded word payload to an even four bytes, we add the padding before handing it to base64mime.decode. Previously, missing padding resulted in a HeaderParseError. Patch by Jason Williams. ........
Diffstat (limited to 'Lib/email/test')
-rw-r--r--Lib/email/test/test_email.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/Lib/email/test/test_email.py b/Lib/email/test/test_email.py
index 7d91d25884e..05591422c23 100644
--- a/Lib/email/test/test_email.py
+++ b/Lib/email/test/test_email.py
@@ -1645,6 +1645,15 @@ Re: =?mac-iceland?q?r=8Aksm=9Arg=8Cs?= baz foo bar =?mac-iceland?q?r=8Aksm?=
(b'rg', None), (b'\xe5', 'iso-8859-1'),
(b'sbord', None)])
+ def test_rfc2047_B_bad_padding(self):
+ s = '=?iso-8859-1?B?%s?='
+ data = [ # only test complete bytes
+ ('dm==', b'v'), ('dm=', b'v'), ('dm', b'v'),
+ ('dmk=', b'vi'), ('dmk', b'vi')
+ ]
+ for q, a in data:
+ dh = decode_header(s % q)
+ self.assertEqual(dh, [(a, 'iso-8859-1')])
# Test the MIMEMessage class
@@ -3172,7 +3181,7 @@ A very long line that must get split to something other than at the
def test_broken_base64_header(self):
raises = self.assertRaises
- s = 'Subject: =?EUC-KR?B?CSixpLDtKSC/7Liuvsax4iC6uLmwMcijIKHaILzSwd/H0SC8+LCjwLsgv7W/+Mj3IQ?='
+ s = 'Subject: =?EUC-KR?B?CSixpLDtKSC/7Liuvsax4iC6uLmwMcijIKHaILzSwd/H0SC8+LCjwLsgv7W/+Mj3I ?='
raises(errors.HeaderParseError, decode_header, s)