| """Tests for configuration.""" | |
| import pytest | |
| from src.utils import Config, LLMProvider | |
| def test_config_default_provider(): | |
| """Test default provider is mock.""" | |
| cfg = Config() | |
| assert cfg.llm_provider == LLMProvider.MOCK | |
| def test_config_model_name(): | |
| """Test model name selection.""" | |
| cfg = Config() | |
| cfg.llm_provider = LLMProvider.OPENAI | |
| assert "gpt" in cfg.model_name.lower() | |
| cfg.llm_provider = LLMProvider.LOCAL | |
| assert "mistral" in cfg.model_name.lower() | |
| def test_config_validate_openai_missing_key(): | |
| """Test validation fails for OpenAI without API key.""" | |
| cfg = Config() | |
| cfg.llm_provider = LLMProvider.OPENAI | |
| cfg.openai_api_key = None | |
| with pytest.raises(ValueError, match="OPENAI_API_KEY"): | |
| cfg.validate() | |
| def test_config_validate_success(): | |
| """Test validation passes with correct config.""" | |
| cfg = Config() | |
| cfg.llm_provider = LLMProvider.MOCK | |
| cfg.validate() # Should not raise | |