Spaces:
Runtime error
Runtime error
| from pydantic import SecretStr | |
| from tutor.config import Settings | |
| def _settings(**overrides: object) -> Settings: | |
| # _env_file=None: ignore any local .env so tests are hermetic. | |
| return Settings(_env_file=None, **overrides) # type: ignore[arg-type] | |
| def test_defaults_are_offline_safe() -> None: | |
| settings = _settings() | |
| assert settings.llm_provider == "fake" | |
| assert settings.storage_backend == "memory" | |
| assert settings.port == 7860 | |
| def test_env_overrides(monkeypatch) -> None: | |
| monkeypatch.setenv("LLM_PROVIDER", "gemini") | |
| monkeypatch.setenv("LLM_MODEL", "gemini-2.5-flash") | |
| monkeypatch.setenv("LLM_API_KEY", "sk-test") | |
| settings = _settings() | |
| assert settings.llm_provider == "gemini" | |
| assert settings.llm_model == "gemini-2.5-flash" | |
| assert isinstance(settings.llm_api_key, SecretStr) | |
| def test_api_key_is_not_leaked_in_repr() -> None: | |
| settings = _settings(llm_api_key=SecretStr("sk-very-secret")) | |
| assert "sk-very-secret" not in repr(settings) | |
| assert "sk-very-secret" not in str(settings) | |