Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| import os | |
| import pytest | |
| from core.config.settings import Settings, get_settings | |
| class TestGetSettings: | |
| def test_returns_settings_instance(self, env_full) -> None: | |
| result = get_settings() | |
| assert isinstance(result, Settings) | |
| def test_caches_result(self, env_full) -> None: | |
| a = get_settings() | |
| b = get_settings() | |
| assert a is b | |
| def test_cache_clear_allows_new_instance(self, env_full) -> None: | |
| a = get_settings() | |
| get_settings.cache_clear() | |
| b = get_settings() | |
| assert a is not b | |
| class TestSettings: | |
| def test_defaults(self) -> None: | |
| s = Settings( | |
| BOT_TOKEN="123456789:AAHdqTcvCH1vGWJxfSeofSAsQK6PALsAWo", | |
| OPENAI_API_KEY="sk-test", | |
| ADMIN_ID="1", | |
| ) | |
| assert s.PORT == 7860 | |
| assert s.LOG_LEVEL == "INFO" | |
| assert s.LOG_FORMAT == "json" | |
| assert s.DEFAULT_PROVIDER == "openai" | |
| def test_required_fields(self) -> None: | |
| s = Settings( | |
| BOT_TOKEN="123456789:AAHdqTcvCH1vGWJxfSeofSAsQK6PALsAWo", | |
| OPENAI_API_KEY="sk-test", | |
| ADMIN_ID="1", | |
| ) | |
| rf = s.required_fields | |
| assert "BOT_TOKEN" in rf | |
| assert "OPENAI_API_KEY" in rf | |
| assert "ADMIN_ID" in rf | |
| def test_port_validation_low(self) -> None: | |
| with pytest.raises(Exception): | |
| Settings( | |
| BOT_TOKEN="t", | |
| OPENAI_API_KEY="k", | |
| ADMIN_ID="1", | |
| PORT=0, | |
| ) | |
| def test_port_validation_high(self) -> None: | |
| with pytest.raises(Exception): | |
| Settings( | |
| BOT_TOKEN="t", | |
| OPENAI_API_KEY="k", | |
| ADMIN_ID="1", | |
| PORT=70000, | |
| ) | |
| def test_reads_from_env(self, env_full) -> None: | |
| s = get_settings() | |
| assert s.BOT_TOKEN == "123456789:AAHdqTcvCH1vGWJxfSeofSAsQK6PALsAWo" | |
| assert s.ADMIN_ID == "123456789" | |
| def test_default_provider_literal(self) -> None: | |
| s = Settings( | |
| BOT_TOKEN="t", | |
| OPENAI_API_KEY="k", | |
| ADMIN_ID="1", | |
| DEFAULT_PROVIDER="claude", | |
| ) | |
| assert s.DEFAULT_PROVIDER == "claude" | |
| def test_invalid_default_provider(self) -> None: | |
| with pytest.raises(Exception): | |
| Settings( | |
| BOT_TOKEN="t", | |
| OPENAI_API_KEY="k", | |
| ADMIN_ID="1", | |
| DEFAULT_PROVIDER="invalid_provider", | |
| ) | |