28 lines
849 B
Python
28 lines
849 B
Python
"""Regression: the shared MCP truncate() must tolerate non-string input."""
|
|
import importlib.machinery
|
|
import importlib.util
|
|
from pathlib import Path
|
|
|
|
_PATH = Path(__file__).resolve().parents[1] / "mcp_servers" / "_common.py"
|
|
|
|
|
|
def _load():
|
|
loader = importlib.machinery.SourceFileLoader("odysseus_mcp_common", str(_PATH))
|
|
spec = importlib.util.spec_from_loader(loader.name, loader)
|
|
module = importlib.util.module_from_spec(spec)
|
|
loader.exec_module(module)
|
|
return module
|
|
|
|
|
|
def test_truncate_handles_none_and_nonstring():
|
|
c = _load()
|
|
assert c.truncate(None) == ""
|
|
assert c.truncate(12345) == "12345"
|
|
|
|
|
|
def test_truncate_string_behaviour_unchanged():
|
|
c = _load()
|
|
assert c.truncate("hello", limit=100) == "hello"
|
|
out = c.truncate("x" * 50, limit=10)
|
|
assert out.startswith("x" * 10) and "truncated" in out
|