markitect-main/tests/integration/llm/test_openrouter_live.py

41 lines
1.2 KiB
Python
Raw Normal View History

"""Live integration test for OpenRouterAdapter.
Skipped unless an API key is available (env var or project key file).
"""
import os
import pytest
from markitect.llm.openrouter import OpenRouterAdapter
from markitect.llm.config import resolve_api_key, find_project_root
from markitect.prompts.execution.models import RunConfig, LLMResponse
def _get_api_key():
root = find_project_root()
paths = [root / "apikey-openrouter.txt"] if root else []
return resolve_api_key(env_var="OPENROUTER_API_KEY", key_file_paths=paths)
pytestmark = pytest.mark.skipif(
_get_api_key() is None,
reason="No OpenRouter API key available",
)
class TestOpenRouterLive:
def test_simple_completion(self):
adapter = OpenRouterAdapter(
model="anthropic/claude-sonnet-4",
api_key=_get_api_key(),
)
config = RunConfig(temperature=0.0, max_tokens=50)
resp = adapter.execute_prompt("Reply with exactly: PONG", config)
assert isinstance(resp, LLMResponse)
assert len(resp.content) > 0
assert resp.usage["total_tokens"] > 0
assert resp.finish_reason in ("stop", "length")
assert resp.metadata["provider"] == "openrouter"