harmonic-analysis / tests /conftest.py
ohollo's picture
Create agents folder
ca2bb92
Raw
History Blame Contribute Delete
1.61 kB
import os
import sys
sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))
import pytest
from agents.claude import ClaudeAgent
from agents.ollama import OllamaAgent
def pytest_addoption(parser):
parser.addoption(
"--mcp-url",
default="http://localhost:7860/gradio_api/mcp/sse",
help="MCP server SSE endpoint",
)
parser.addoption(
"--agent",
default="claude",
help="Agent implementation to test (claude, ollama)",
)
parser.addoption(
"--ollama-host",
default="http://localhost:11434",
help="Ollama server host",
)
parser.addoption(
"--ollama-model",
default="llama3.2",
help="Ollama model name",
)
@pytest.fixture(scope="session")
def mcp_url(request):
return request.config.getoption("--mcp-url")
@pytest.fixture(scope="session")
def agent(request, mcp_url):
name = request.config.getoption("--agent")
if name == "claude":
return ClaudeAgent(mcp_url)
if name == "ollama":
return OllamaAgent(
mcp_url,
model=request.config.getoption("--ollama-model"),
ollama_host=request.config.getoption("--ollama-host"),
)
raise ValueError(f"Unknown agent: {name}")
@pytest.fixture(scope="session")
def _result_cache():
return {}
@pytest.fixture
def run_scenario(agent, _result_cache):
def _run(scenario):
if scenario.name not in _result_cache:
_result_cache[scenario.name] = agent.run(scenario.user_prompt)
return _result_cache[scenario.name]
return _run