Skip to content

Commit afe9274

Browse files
aditik0303claude
andcommitted
test(llamaindex): cover swallow/extraction branches (Sonar coverage)
New-code coverage ~89% -> over the 90% gate. Added after_model/tool_call non-block swallow + _message_text/_response_text/_latest_message_text edges. governance/event_handler.py: 89% -> 99%. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 16218ce commit afe9274

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

packages/uipath-llamaindex/tests/governance/test_event_handler.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,3 +368,56 @@ def evaluate_before_model(self, **_: Any) -> None:
368368
logger.removeHandler(caplog.handler)
369369
logger.setLevel(prev)
370370
assert any("governance check failed" in r.message for r in caplog.records)
371+
372+
373+
# --------------------------------------------------------------------------
374+
# coverage: swallow on after_model/tool_call + extraction edges
375+
# --------------------------------------------------------------------------
376+
377+
378+
class _Boom:
379+
"""Evaluator whose every evaluate_* raises a non-block error."""
380+
381+
def __getattr__(self, _name: str) -> Any:
382+
def _raise(*_a: Any, **_k: Any) -> None:
383+
raise RuntimeError("evaluator bug")
384+
385+
return _raise
386+
387+
388+
def test_after_model_and_tool_call_swallow_non_block_errors(caplog):
389+
cb = GovernanceCallbacks(evaluator=_Boom(), agent_name="a", session_id="s")
390+
logger = logging.getLogger("uipath_llamaindex.governance.event_handler")
391+
logger.addHandler(caplog.handler)
392+
prev = logger.level
393+
logger.setLevel(logging.WARNING)
394+
try:
395+
cb.after_model(SimpleNamespace(message=SimpleNamespace(content="x")))
396+
cb.tool_call(SimpleNamespace(name="t"), {})
397+
finally:
398+
logger.removeHandler(caplog.handler)
399+
logger.setLevel(prev)
400+
assert sum("governance check failed" in r.message for r in caplog.records) >= 2
401+
402+
403+
def test_extraction_edges():
404+
from uipath_llamaindex.governance.event_handler import (
405+
_latest_message_text,
406+
_message_text,
407+
_response_text,
408+
)
409+
410+
# _message_text: None / str / object with no content or blocks -> str()
411+
assert _message_text(None) == ""
412+
assert _message_text("plain") == "plain"
413+
assert isinstance(_message_text(SimpleNamespace(content=None, blocks=None)), str)
414+
# _latest_message_text: single (non-list) message
415+
assert _latest_message_text(SimpleNamespace(content="solo")) == "solo"
416+
# _response_text: None / .message / .text fallback / str() fallback
417+
assert _response_text(None) == ""
418+
assert (
419+
_response_text(SimpleNamespace(message=SimpleNamespace(content="viamsg")))
420+
== "viamsg"
421+
)
422+
assert _response_text(SimpleNamespace(message=None, text="viatext")) == "viatext"
423+
assert isinstance(_response_text(SimpleNamespace(message=None, text=None)), str)

0 commit comments

Comments
 (0)