def test_incremental(): p = channel.ChunkParser() assert list(p.get_chunks(''.encode())) == [] assert list(p.get_chunks('5'.encode())) == [] assert list(p.get_chunks('\n'.encode())) == [] assert list(p.get_chunks('abc'.encode())) == [] assert list(p.get_chunks('de'.encode())) == ['abcde'] assert list(p.get_chunks(''.encode())) == []
def test_split_characters(): p = channel.ChunkParser() assert list(p.get_chunks(b'1\n\xe2\x82')) == [] assert list(p.get_chunks(b'\xac')) == ['€']
def test_unicode(): p = channel.ChunkParser() # smile is actually 2 code units assert list(p.get_chunks('3\na😀'.encode())) == ['a😀']
def test_malformed_length(): p = channel.ChunkParser() # TODO: could detect errors like these with some extra work assert list(p.get_chunks( '11\n0123456789\n5e\n"abc"'.encode())) == ['0123456789\n']
def test_truncated_length(): p = channel.ChunkParser() assert list(p.get_chunks('13'.encode())) == []
def test_truncated_message(): p = channel.ChunkParser() assert list(p.get_chunks('12\n012345678'.encode())) == []
def test_simple(): p = channel.ChunkParser() assert list(p.get_chunks('10\n01234567893\nabc'.encode())) == [ '0123456789', 'abc', ]
def test_junk_before_length(): p = channel.ChunkParser() assert list(p.get_chunks('junk4\nfail'.encode())) == []