local-llm-agent/apps/inference-engine/tests/test_exceptions.py
Adrian Flores Cortes 3def230d58 Initial commit: local-llm-agent infrastructure project
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 16:42:45 -06:00

89 lines
2.7 KiB
Python

"""Tests for exception classes."""
import pytest
from src.exceptions import (
BackendUnavailableError,
InferenceError,
InferenceTimeoutError,
ModelNotFoundError,
ValidationError,
)
class TestInferenceError:
"""Test base InferenceError."""
def test_basic_error(self):
"""Test basic error creation."""
error = InferenceError("Test error")
assert error.message == "Test error"
assert error.error_code == "inference_error"
assert error.status_code == 500
def test_error_with_request_id(self):
"""Test error with request_id."""
error = InferenceError("Test error", request_id="req-123")
assert error.request_id == "req-123"
def test_to_openai_error(self):
"""Test OpenAI error format."""
error = InferenceError("Test error", request_id="req-123")
result = error.to_openai_error()
assert "error" in result
assert result["error"]["message"] == "Test error"
assert result["error"]["type"] == "inference_error"
assert result["error"]["request_id"] == "req-123"
class TestValidationError:
"""Test ValidationError."""
def test_validation_error(self):
"""Test validation error creation."""
error = ValidationError("Invalid parameter", param="temperature")
assert error.status_code == 400
assert error.error_code == "invalid_request_error"
assert error.param == "temperature"
def test_to_openai_error_with_param(self):
"""Test OpenAI format includes param."""
error = ValidationError("Invalid", param="max_tokens")
result = error.to_openai_error()
assert result["error"]["param"] == "max_tokens"
class TestModelNotFoundError:
"""Test ModelNotFoundError."""
def test_model_not_found(self):
"""Test model not found error."""
error = ModelNotFoundError(model="unknown-model")
assert error.status_code == 404
assert "unknown-model" in error.message
assert error.model == "unknown-model"
class TestBackendUnavailableError:
"""Test BackendUnavailableError."""
def test_backend_unavailable(self):
"""Test backend unavailable error."""
error = BackendUnavailableError(backend="ollama", reason="Connection refused")
assert error.status_code == 503
assert "ollama" in error.message
assert error.backend == "ollama"
class TestInferenceTimeoutError:
"""Test InferenceTimeoutError."""
def test_timeout_error(self):
"""Test timeout error."""
error = InferenceTimeoutError(timeout_ms=5000)
assert error.status_code == 504
assert "5000" in error.message
assert error.timeout_ms == 5000