scrapeRL / backend /tests /test_models /test_base_simple.py
NeerajCodz's picture
test: add comprehensive API and core module tests
e8d7c11
"""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"