From 56c33fb8b6d281604baa748bb8f6a84d244465e7 Mon Sep 17 00:00:00 2001 From: rdb Date: Sat, 12 Sep 2020 23:09:38 +0200 Subject: [PATCH] tests: add unit test for StreamReader.readlines() --- tests/prc/test_stream_reader.py | 36 +++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/prc/test_stream_reader.py b/tests/prc/test_stream_reader.py index bea5db5614..7dcec0a5a1 100644 --- a/tests/prc/test_stream_reader.py +++ b/tests/prc/test_stream_reader.py @@ -157,6 +157,42 @@ def test_streamreader_readline(): assert reader.readline() == b'\x00\x00' +def test_streamreader_readlines(): + # Empty stream + stream = StringStream(b'') + reader = StreamReader(stream, False) + assert reader.readlines() == [] + + # Single line without newline + stream = StringStream(b'A') + reader = StreamReader(stream, False) + assert reader.readlines() == [b'A'] + assert reader.readlines() == [] + + # Single newline + stream = StringStream(b'\n') + reader = StreamReader(stream, False) + assert reader.readlines() == [b'\n'] + assert reader.readlines() == [] + + # Line with text followed by empty line + stream = StringStream(b'A\n\n') + reader = StreamReader(stream, False) + assert reader.readlines() == [b'A\n', b'\n'] + assert reader.readlines() == [] + + # Multiple lines + stream = StringStream(b'A\nB\nC') + reader = StreamReader(stream, False) + assert reader.readlines() == [b'A\n', b'B\n', b'C'] + assert reader.readlines() == [] + + # Preserve null byte + stream = StringStream(b'\x00\x00') + reader = StreamReader(stream, False) + assert reader.readlines() == [b'\x00\x00'] + + def test_streamreader_extract_bytes(): # Empty bytes stream = StringStream(b'')