46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
import pytest
|
|
|
|
from haiku.rag.tools.analysis import create_analysis_toolset
|
|
|
|
|
|
class TestAnalysisToolset:
|
|
"""Tests for create_analysis_toolset."""
|
|
|
|
def test_create_analysis_toolset_returns_function_toolset(
|
|
self, analysis_client, analysis_config
|
|
):
|
|
"""create_analysis_toolset returns a FunctionToolset."""
|
|
from pydantic_ai import FunctionToolset
|
|
|
|
toolset = create_analysis_toolset(analysis_client, analysis_config)
|
|
assert isinstance(toolset, FunctionToolset)
|
|
|
|
def test_analysis_toolset_has_analyze_tool(self, analysis_client, analysis_config):
|
|
"""The toolset includes an 'analyze' tool."""
|
|
toolset = create_analysis_toolset(analysis_client, analysis_config)
|
|
assert "analyze" in toolset.tools
|
|
|
|
def test_analysis_toolset_custom_tool_name(self, analysis_client, analysis_config):
|
|
"""Toolset supports custom tool name."""
|
|
toolset = create_analysis_toolset(
|
|
analysis_client, analysis_config, tool_name="run_code"
|
|
)
|
|
assert "run_code" in toolset.tools
|
|
assert "analyze" not in toolset.tools
|
|
|
|
|
|
@pytest.fixture
|
|
async def analysis_client(temp_db_path):
|
|
"""Create a HaikuRAG client for analysis tests."""
|
|
from haiku.rag.client import HaikuRAG
|
|
|
|
async with HaikuRAG(temp_db_path, create=True) as rag:
|
|
yield rag
|
|
|
|
|
|
@pytest.fixture
|
|
def analysis_config():
|
|
"""Default AppConfig for analysis tests."""
|
|
from haiku.rag.config import Config
|
|
|
|
return Config
|