First MVP
This commit is contained in:
44
tests/conftest.py
Normal file
44
tests/conftest.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from collections.abc import Generator
|
||||
import os
|
||||
|
||||
import pytest
|
||||
|
||||
from gitea_codex_bot.config import get_settings
|
||||
from gitea_codex_bot.db import Base, get_engine, get_session_factory
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def _env_defaults(monkeypatch: pytest.MonkeyPatch, tmp_path, request: pytest.FixtureRequest) -> Generator[None, None, None]:
|
||||
monkeypatch.setenv("GITEA_BASE_URL", "https://gitea.test")
|
||||
monkeypatch.setenv("GITEA_TOKEN", "token")
|
||||
monkeypatch.setenv("GITEA_BOT_USERNAME", "codex-bot")
|
||||
monkeypatch.setenv("GITEA_WEBHOOK_SECRET", "secret")
|
||||
monkeypatch.setenv("OPENAI_API_KEY", "openai-key")
|
||||
monkeypatch.setenv("ALLOWED_REPOS", "acme/repo")
|
||||
monkeypatch.setenv("COOLDOWN_SECONDS", "60")
|
||||
monkeypatch.setenv("WEBHOOK_MODE", "repo")
|
||||
monkeypatch.setenv("DB_HOST", "localhost")
|
||||
monkeypatch.setenv("DB_PORT", "3306")
|
||||
monkeypatch.setenv("DB_NAME", "ignored")
|
||||
monkeypatch.setenv("DB_USER", "ignored")
|
||||
monkeypatch.setenv("DB_PASSWORD", "ignored")
|
||||
database_url = os.getenv("TEST_DATABASE_URL", "").strip() or f"sqlite+pysqlite:///{tmp_path / 'test.db'}"
|
||||
monkeypatch.setenv("DATABASE_URL", database_url)
|
||||
monkeypatch.setenv("WORKDIR", str(tmp_path / "work"))
|
||||
|
||||
get_settings.cache_clear()
|
||||
get_engine.cache_clear()
|
||||
get_session_factory.cache_clear()
|
||||
|
||||
engine = get_engine()
|
||||
skip_schema = request.node.get_closest_marker("no_schema") is not None
|
||||
if not skip_schema:
|
||||
Base.metadata.create_all(bind=engine)
|
||||
yield
|
||||
if not skip_schema:
|
||||
Base.metadata.drop_all(bind=engine)
|
||||
get_settings.cache_clear()
|
||||
get_engine.cache_clear()
|
||||
get_session_factory.cache_clear()
|
||||
Reference in New Issue
Block a user