34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
import pytest
|
|
from pydantic import ValidationError
|
|
|
|
from gitea_codex_bot.config import get_settings
|
|
|
|
|
|
def test_openai_api_key_from_env() -> None:
|
|
settings = get_settings()
|
|
assert settings.openai_api_key is not None
|
|
assert settings.openai_api_key.get_secret_value() == "openai-key"
|
|
|
|
|
|
def test_codex_auth_defaults_to_api_key_mode() -> None:
|
|
settings = get_settings()
|
|
assert settings.codex_auth_mode == "api_key"
|
|
assert settings.codex_auth_json_path is None
|
|
|
|
|
|
def test_job_lease_timeout_must_cover_max_review_runtime(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
monkeypatch.setenv("MAX_REVIEW_MINUTES", "10")
|
|
monkeypatch.setenv("JOB_LEASE_TIMEOUT_SECONDS", "300")
|
|
get_settings.cache_clear()
|
|
|
|
with pytest.raises(ValidationError, match="JOB_LEASE_TIMEOUT_SECONDS must be at least"):
|
|
get_settings()
|
|
|
|
|
|
def test_max_stuck_job_retries_must_be_non_negative(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
monkeypatch.setenv("MAX_STUCK_JOB_RETRIES", "-1")
|
|
get_settings.cache_clear()
|
|
|
|
with pytest.raises(ValidationError, match="MAX_STUCK_JOB_RETRIES must be >= 0"):
|
|
get_settings()
|