Spaces:
Sleeping
Sleeping
| """Simple tests to verify the base model structures.""" | |
| import pytest | |
| from app.models.providers.base import ( | |
| TokenUsage, | |
| CompletionResponse, | |
| ModelInfo, | |
| ProviderError | |
| ) | |
| def test_token_usage_creation(): | |
| """Test TokenUsage creation and addition.""" | |
| usage1 = TokenUsage(prompt_tokens=10, completion_tokens=20, total_tokens=30) | |
| usage2 = TokenUsage(prompt_tokens=5, completion_tokens=10, total_tokens=15) | |
| combined = usage1 + usage2 | |
| assert combined.prompt_tokens == 15 | |
| assert combined.completion_tokens == 30 | |
| assert combined.total_tokens == 45 | |
| def test_completion_response_creation(): | |
| """Test CompletionResponse creation.""" | |
| usage = TokenUsage(prompt_tokens=10, completion_tokens=20, total_tokens=30) | |
| response = CompletionResponse( | |
| content="Hello world", | |
| model="test-model", | |
| provider="test-provider", | |
| usage=usage, | |
| finish_reason="stop", | |
| cost=0.001 | |
| ) | |
| assert response.content == "Hello world" | |
| assert response.model == "test-model" | |
| assert response.provider == "test-provider" | |
| assert response.usage.total_tokens == 30 | |
| assert response.cost == 0.001 | |
| def test_model_info_creation(): | |
| """Test ModelInfo creation.""" | |
| info = ModelInfo( | |
| id="test-model", | |
| name="Test Model", | |
| provider="test", | |
| context_window=4096, | |
| max_output_tokens=1000, | |
| cost_per_1k_input=0.001, | |
| cost_per_1k_output=0.002 | |
| ) | |
| assert info.id == "test-model" | |
| assert info.context_window == 4096 | |
| assert info.cost_per_million_input == 1.0 | |
| assert info.cost_per_million_output == 2.0 | |
| def test_provider_error(): | |
| """Test ProviderError creation.""" | |
| error = ProviderError("Test error", "test-provider", 500) | |
| assert error.message == "Test error" | |
| assert error.provider == "test-provider" | |
| assert error.status_code == 500 | |
| assert str(error) == "[test-provider] Test error" |