Spaces:
Configuration error
Configuration error
| """Tests for LLM client abstraction.""" | |
| import pytest | |
| from amcp.config import ChatConfig | |
| from amcp.llm import LLMResponse, create_llm_client, OpenAIClient, OpenAIResponsesClient, AnthropicClient | |
| class TestLLMResponse: | |
| """Tests for LLMResponse dataclass.""" | |
| def test_basic_response(self): | |
| resp = LLMResponse(content="Hello, world!") | |
| assert resp.content == "Hello, world!" | |
| assert resp.tool_calls is None | |
| def test_response_with_tool_calls(self): | |
| tool_calls = [{"id": "1", "name": "test", "arguments": "{}"}] | |
| resp = LLMResponse(content=None, tool_calls=tool_calls, stop_reason="tool_use") | |
| assert resp.tool_calls == tool_calls | |
| class TestCreateLLMClient: | |
| """Tests for create_llm_client factory.""" | |
| def test_default_creates_openai_client(self): | |
| cfg = ChatConfig(model="gpt-4o", api_key="test-key") | |
| client = create_llm_client(cfg) | |
| assert isinstance(client, OpenAIClient) | |
| def test_openai_type_creates_openai_client(self): | |
| cfg = ChatConfig(api_type="openai", model="gpt-4o", api_key="test-key") | |
| client = create_llm_client(cfg) | |
| assert isinstance(client, OpenAIClient) | |
| def test_openai_responses_type(self): | |
| cfg = ChatConfig(api_type="openai_responses", model="gpt-4o", api_key="test-key") | |
| client = create_llm_client(cfg) | |
| assert isinstance(client, OpenAIResponsesClient) | |
| def test_anthropic_type(self): | |
| try: | |
| cfg = ChatConfig(api_type="anthropic", model="claude-sonnet-4-20250514", api_key="test-key") | |
| client = create_llm_client(cfg) | |
| assert isinstance(client, AnthropicClient) | |
| except ImportError: | |
| pytest.skip("anthropic package not installed") | |
| def test_none_config_uses_defaults(self): | |
| client = create_llm_client(None) | |
| assert isinstance(client, OpenAIClient) | |
| class TestOpenAIClient: | |
| def test_client_creation(self): | |
| client = OpenAIClient(base_url="https://api.openai.com/v1", api_key="test-key", model="gpt-4o") | |
| assert client.model == "gpt-4o" | |
| class TestOpenAIResponsesClient: | |
| def test_client_creation(self): | |
| client = OpenAIResponsesClient(base_url="https://api.openai.com/v1", api_key="test-key", model="gpt-4o") | |
| assert client.model == "gpt-4o" | |
| class TestAnthropicClient: | |
| def test_client_creation(self): | |
| try: | |
| client = AnthropicClient(api_key="test-key", model="claude-sonnet-4-20250514") | |
| assert client.model == "claude-sonnet-4-20250514" | |
| except ImportError: | |
| pytest.skip("anthropic package not installed") | |