testing.eval

Page actions AI-ready formats and sharing
Open LLM text
Share with AI
Ask Claude Ask ChatGPT Ask Gemini Ask Copilot

LLM and agent eval helpers for TestClient-based regression tests.

These utilities mock provider HTTP at the httpx transport layer so AI routes andAgentRunloops can be tested without live API keys.

LLM and agent eval helpers for TestClient-based regression tests.

These utilities mock provider HTTP at the httpx transport layer so AI routes andAgentRunloops can be tested without live API keys.

testing.eval

Name Type Default Description
type
qualified_name
element_type
description
source_file
line_number
is_autodoc
autodoc_element
_autodoc_template
_autodoc_url_path
_autodoc_page_type
title
doc_content_hash

Symbols on this page

LLMScript
class

Scripted OpenAI-compatible chat completion responses for mocked LLM calls.

LLMCallTracker
class

Counts how many complete vs stream requests the mock served.

openai_completion
function
def openai_completion(content: str = '', *, tool_calls: list[dict[str, Any]] | None = None) -> dict[str, Any]

Build a mock/v1/chat/completionsresponse body.

Parameters

Name Type Default Description
content str ''
tool_calls list[dict[str, Any]] | None None
openai_tool_call
function
def openai_tool_call(name: str, /, **arguments: Any) -> dict[str, Any]

Build a single OpenAItool_callsentry.

Parameters

Name Type Default Description
name str
**arguments Any
install_mock_transport
function
def install_mock_transport(monkeypatch: pytest.MonkeyPatch, handler: Callable[..., Any]) -> None

Patchhttpx.AsyncClientso chirp.ai provider calls use handler.

Parameters

Name Type Default Description
monkeypatch pytest.MonkeyPatch
handler Callable[..., Any]
install_llm_script
function
def install_llm_script(monkeypatch: pytest.MonkeyPatch, script: LLMScript, *, tags_response: dict[str, Any] | None = None) -> LLMCallTracker

Install a scripted LLM mock for AgentRun / LLM HTTP calls.

Parameters

Name Type Default Description
monkeypatch pytest.MonkeyPatch
script LLMScript
tags_response dict[str, Any] | None None
collect_sse_message_text
function
def collect_sse_message_text(result: SSETestResult) -> str

Join defaultmessageSSE event payloads into one string.

Parameters

Name Type Default Description
result SSETestResult
assert_tool_messages_contain
function
def assert_tool_messages_contain(messages: list[dict[str, Any]], *, tool_name: str | None = None, text: str | None = None) -> None

Assert a later completion round includes tool result messages.

Parameters

Name Type Default Description
messages list[dict[str, Any]]
tool_name str | None None
text str | None None

View source · /home/runner/work/chirp/chirp/site/../src/chirp/testing/eval.py:1