Files
odysseus/tests/test_shell_routes.py
pewdiepie-archdaemon e5c99a5eee Odysseus v1.0
2026-05-31 23:58:26 +09:00

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)