'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.'

def test_pushCR_LF(self):

    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)))
