mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-09-04 10:11:46 +03:00
fix(channels): harden message split boundaries
This commit is contained in:
@@ -39,6 +39,42 @@ def test_split_message_preserves_indentation_when_newline_is_at_hard_break():
|
||||
]
|
||||
|
||||
|
||||
def test_split_message_handles_crlf_before_hard_break():
|
||||
content = "header\r\n indented code"
|
||||
|
||||
assert split_message(content, max_len=18) == ["header", " indented code"]
|
||||
assert split_message("abcdefg\r\n code", max_len=8) == [
|
||||
"abcdefg",
|
||||
" code",
|
||||
]
|
||||
|
||||
|
||||
def test_split_message_preserves_indent_after_space_then_newline_boundary():
|
||||
content = "abcdef \n code"
|
||||
|
||||
assert split_message(content, max_len=7) == ["abcdef", " cod", "e"]
|
||||
assert split_message(content.replace("\n", "\r\n"), max_len=7) == [
|
||||
"abcdef",
|
||||
" cod",
|
||||
"e",
|
||||
]
|
||||
|
||||
|
||||
def test_split_message_drops_blank_chunks_from_long_indentation():
|
||||
content = "head\n" + " " * 20 + "x"
|
||||
|
||||
chunks = split_message(content, max_len=8)
|
||||
|
||||
assert chunks == ["head", " x"]
|
||||
assert all(chunk.strip() for chunk in chunks)
|
||||
|
||||
|
||||
def test_split_message_drops_whitespace_only_line_at_boundary():
|
||||
content = " \nhello world"
|
||||
|
||||
assert split_message(content, max_len=8) == ["hello", "world"]
|
||||
|
||||
|
||||
def test_split_message_drops_whitespace_only_tail_after_hard_break():
|
||||
prefix = "abcdefgh"
|
||||
|
||||
@@ -46,6 +82,12 @@ def test_split_message_drops_whitespace_only_tail_after_hard_break():
|
||||
assert split_message(prefix + " ", max_len=8) == [prefix]
|
||||
|
||||
|
||||
def test_split_message_keeps_one_chunk_for_all_whitespace_input():
|
||||
content = " " * 10
|
||||
|
||||
assert split_message(content, max_len=4) == [" " * 4]
|
||||
|
||||
|
||||
def test_split_message_nonpositive_maxlen_returns_unsplit():
|
||||
content = "alpha beta gamma delta"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user