First MVP

This commit is contained in:
Space-Banane
2026-05-22 19:25:57 +02:00
parent 673f70b32a
commit 860ccb731d
40 changed files with 2336 additions and 0 deletions

44
tests/conftest.py Normal file
View 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()