"""Tests for context builder — verifies truncation actually applies.""" from llm.context_builder import build_context def test_truncation_actually_applies(): """Truncation must produce a shorter result when over budget.""" huge_var = "x" * 50000 template = "Code: {code}" rendered = template.format(code=huge_var) result = build_context(rendered, {"code": huge_var}, template_str=template, max_context_tokens=100) assert len(result) < len(rendered) assert "TRUNCATED" in result def test_no_truncation_when_within_budget(): """Content within token budget is returned unchanged.""" small_var = "def f(): pass" template = "Code: {code}" rendered = template.format(code=small_var) result = build_context(rendered, {"code": small_var}, template_str=template, max_context_tokens=5000) assert result == rendered def test_truncation_without_template_str_fallback(): """Fallback string-replacement path also truncates correctly.""" huge_var = "x" * 50000 rendered = f"Code: {huge_var}" result = build_context(rendered, {"code": huge_var}, max_context_tokens=100) assert len(result) < len(rendered)