"""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"