Files
7000pctAUTO b0af422b39
Some checks failed
CI / test (push) Failing after 4m49s
CI / build (push) Has been skipped
Add test suite for all modules
2026-01-31 15:34:21 +00:00

122 lines
4.8 KiB
Python

"""Tests for Local Code Assistant configuration."""
import pytest
from pathlib import Path
from unittest.mock import Mock, patch
from local_code_assistant.services.config import ConfigService
class TestConfigService:
"""Tests for the configuration service."""
def test_default_ollama_base_url(self):
"""Test default Ollama base URL."""
with patch('os.getenv', return_value=None):
config = ConfigService("/nonexistent")
assert config.ollama_base_url == "http://localhost:11434"
def test_default_ollama_model(self):
"""Test default Ollama model."""
with patch('os.getenv', return_value=None):
config = ConfigService("/nonexistent")
assert config.ollama_model == "codellama"
def test_default_ollama_timeout(self):
"""Test default Ollama timeout."""
with patch('os.getenv', return_value=None):
config = ConfigService("/nonexistent")
assert config.ollama_timeout == 8000
def test_env_override_ollama_url(self):
"""Test environment variable override for Ollama URL."""
env = {'OLLAMA_BASE_URL': 'http://custom:9000'}
with patch.dict('os.environ', env, clear=False):
config = ConfigService("/nonexistent")
assert config.ollama_base_url == 'http://custom:9000'
def test_env_override_ollama_model(self):
"""Test environment variable override for model."""
env = {'OLLAMA_MODEL': 'custom-model'}
with patch.dict('os.environ', env, clear=False):
config = ConfigService("/nonexistent")
assert config.ollama_model == 'custom-model'
def test_env_override_timeout(self):
"""Test environment variable override for timeout."""
env = {'OLLAMA_TIMEOUT': '120'}
with patch.dict('os.environ', env, clear=False):
config = ConfigService("/nonexistent")
assert config.ollama_timeout == 120
def test_streaming_default(self):
"""Test default streaming setting."""
with patch('os.getenv', return_value=None):
config = ConfigService("/nonexistent")
assert config.streaming is True
def test_default_language(self):
"""Test default programming language."""
with patch('os.getenv', return_value=None):
config = ConfigService("/nonexistent")
assert config.default_language == "python"
def test_temperature_default(self):
"""Test default temperature."""
with patch('os.getenv', return_value=None):
config = ConfigService("/nonexistent")
assert config.temperature == 0.2
def test_max_tokens_default(self):
"""Test default max tokens."""
with patch('os.getenv', return_value=None):
config = ConfigService("/nonexistent")
assert config.max_tokens == 4000
def test_syntax_highlighting_default(self):
"""Test default syntax highlighting."""
with patch('os.getenv', return_value=None):
config = ConfigService("/nonexistent")
assert config.syntax_highlighting is True
def test_clipboard_enabled_default(self):
"""Test default clipboard setting."""
with patch('os.getenv', return_value=None):
config = ConfigService("/nonexistent")
assert config.clipboard_enabled is True
def test_set_ollama_base_url(self):
"""Test setting Ollama base URL."""
with patch('os.getenv', return_value=None):
config = ConfigService("/nonexistent")
config.ollama_base_url = "http://new:9000"
assert config.ollama_base_url == "http://new:9000"
def test_set_ollama_model(self):
"""Test setting Ollama model."""
with patch('os.getenv', return_value=None):
config = ConfigService("/nonexistent")
config.ollama_model = "new-model"
assert config.ollama_model == "new-model"
def test_get_nested_config(self):
"""Test getting nested configuration values."""
with patch('os.getenv', return_value=None):
config = ConfigService("/nonexistent")
value = config.get("ollama.base_url")
assert value == "http://localhost:11434"
def test_get_missing_config(self):
"""Test getting missing configuration with default."""
with patch('os.getenv', return_value=None):
config = ConfigService("/nonexistent")
value = config.get("nonexistent.key", "default")
assert value == "default"
def test_set_nested_config(self):
"""Test setting nested configuration values."""
with patch('os.getenv', return_value=None):
config = ConfigService("/nonexistent")
config.set("new.setting", "value")
value = config.get("new.setting")
assert value == "value"