45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
"""Tests for shell_routes.py — _find_line_break helper.
|
|
Imports the function directly since it has no app dependencies."""
|
|
|
|
from routes.shell_routes import _find_line_break
|
|
|
|
|
|
class TestFindLineBreak:
|
|
"""Test line-break detection in byte buffers."""
|
|
|
|
def test_newline(self):
|
|
assert _find_line_break(b"hello\nworld") == (5, 1)
|
|
|
|
def test_crlf(self):
|
|
assert _find_line_break(b"hello\r\nworld") == (5, 2)
|
|
|
|
def test_cr_only(self):
|
|
assert _find_line_break(b"hello\rworld") == (5, 1)
|
|
|
|
def test_no_breaks(self):
|
|
assert _find_line_break(b"no breaks") == (-1, 0)
|
|
|
|
def test_empty(self):
|
|
assert _find_line_break(b"") == (-1, 0)
|
|
|
|
def test_leading_newline(self):
|
|
assert _find_line_break(b"\n") == (0, 1)
|
|
|
|
def test_leading_cr(self):
|
|
assert _find_line_break(b"\r") == (0, 1)
|
|
|
|
def test_leading_crlf(self):
|
|
assert _find_line_break(b"\r\n") == (0, 2)
|
|
|
|
def test_multiple_newlines(self):
|
|
"""Should find the first one."""
|
|
assert _find_line_break(b"a\nb\nc") == (1, 1)
|
|
|
|
def test_cr_before_newline_not_adjacent(self):
|
|
"""\\r at pos 2, \\n at pos 5 — not CRLF, should return \\r pos."""
|
|
assert _find_line_break(b"ab\rcd\n") == (2, 1)
|
|
|
|
def test_newline_before_cr(self):
|
|
"""\\n comes before \\r — should return \\n."""
|
|
assert _find_line_break(b"ab\ncd\r") == (2, 1)
|