diff options
author | R. David Murray <rdmurray@bitdance.com> | 2010-07-17 01:35:16 (GMT) |
---|---|---|
committer | R. David Murray <rdmurray@bitdance.com> | 2010-07-17 01:35:16 (GMT) |
commit | 05b7631c17670a5b221f88161aad23c741b5be79 (patch) | |
tree | 46001b8b0f390a946dbb7b3e523e26f2e42764cf /Lib/email/test | |
parent | 84305c51534482d4defd1f0df898759fbaf5c208 (diff) | |
download | cpython-05b7631c17670a5b221f88161aad23c741b5be79.zip cpython-05b7631c17670a5b221f88161aad23c741b5be79.tar.gz cpython-05b7631c17670a5b221f88161aad23c741b5be79.tar.bz2 |
Merged revisions 82922 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r82922 | r.david.murray | 2010-07-16 21:19:57 -0400 (Fri, 16 Jul 2010) | 4 lines
#1555570: correctly handle a \r\n that is split by the read buffer.
Patch and test by Tony Nelson.
........
Diffstat (limited to 'Lib/email/test')
-rw-r--r-- | Lib/email/test/test_email.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Lib/email/test/test_email.py b/Lib/email/test/test_email.py index 4ce9848..067937a 100644 --- a/Lib/email/test/test_email.py +++ b/Lib/email/test/test_email.py @@ -2465,6 +2465,39 @@ Do you like this message? -Me """) + def test_pushCR_LF(self): + '''FeedParser BufferedSubFile.push() assumed it received complete + line endings. A CR ending one push() followed by a LF starting + the next push() added an empty line. + ''' + imt = [ + ("a\r \n", 2), + ("b", 0), + ("c\n", 1), + ("", 0), + ("d\r\n", 1), + ("e\r", 0), + ("\nf", 1), + ("\r\n", 1), + ] + from email.feedparser import BufferedSubFile, NeedMoreData + bsf = BufferedSubFile() + om = [] + nt = 0 + for il, n in imt: + bsf.push(il) + nt += n + n1 = 0 + while True: + ol = bsf.readline() + if ol == NeedMoreData: + break + om.append(ol) + n1 += 1 + self.assertTrue(n == n1) + self.assertTrue(len(om) == nt) + self.assertTrue(''.join([il for il, n in imt]) == ''.join(om)) + class TestParsers(TestEmailBase): |