Files
nanobot/tests/utils/test_helpers.py
T

34 lines
854 B
Python
Raw Normal View History

import tiktoken
from nanobot.utils.helpers import split_message, truncate_text_to_tokens
def test_split_message_no_code_blocks_unchanged():
content = "alpha beta gamma delta"
assert split_message(content, max_len=12) == ["alpha beta", "gamma delta"]
def test_truncate_text_to_tokens_keeps_text_within_budget():
text = "hello world " * 100
result = truncate_text_to_tokens(text, 10_000)
assert result == text
def test_truncate_text_to_tokens_truncates_over_budget():
enc = tiktoken.get_encoding("cl100k_base")
text = "word " * 1_000
result = truncate_text_to_tokens(text, 50)
assert result.endswith("\n... (truncated)")
2026-06-16 16:38:30 +08:00
assert len(enc.encode(result)) <= 50
def test_truncate_text_to_tokens_non_positive_budget_returns_text():
text = "anything"
assert truncate_text_to_tokens(text, 0) == text