Spaces:
Running
Running
File size: 1,611 Bytes
c5625fd ca2bb92 c5625fd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | 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
|