Files
kmtnflower/backend/tests/conftest.py
T
Hermes Agent 501df79e5c feat: add test framework, unit tests, and GitLab CI pipeline
- Add pytest config in backend/pyproject.toml with asyncio mode and coverage
- Add backend/requirements-test.txt with pytest, pytest-cov, pytest-asyncio, aiosqlite
- Write 86 backend unit tests covering auth (JWT tokens), schemas (Pydantic
  models), config (Settings env overrides), log_parser (log parsing, IP
  resolution, geo data), models (SQLAlchemy table definitions + column
  defaults), and theme export
- Add Vitest config for Angular frontend (vitest.config.ts, src/test-setup.ts)
- Add .gitlab-ci.yml with stages: backend-test, frontend-test, backend-lint,
  docker-build, and quality-gate
- CI enforces 10% minimum coverage threshold for backend
2026-07-29 08:34:42 +00:00

22 lines
819 B
Python

"""Shared test fixtures for kmtnflower backend tests."""
import pytest
from unittest.mock import patch
# Override settings for tests — use SQLite so we don't need PostgreSQL
@pytest.fixture(autouse=True)
def override_settings():
"""Set test-only environment variables before any import of app modules."""
env = {
"KMTN_DATABASE_URL": "sqlite+aiosqlite:///:memory:",
"KMTN_ENV": "test",
"KMTN_JWT_SECRET_KEY": "test-secret-key-do-not-use",
"KMTN_ADMIN_USERNAME": "testadmin",
"KMTN_ADMIN_PASSWORD": "testpass123",
"KMTN_LOGS_DIR": "/tmp/kmtn_test_logs",
"KMTN_GEOLITE2_DB_PATH": "/nonexistent/GeoLite2-City.mmdb",
"KMTN_THEME_JSON_PATH": "/tmp/kmtn_test_theme.json",
}
with patch.dict("os.environ", env, clear=False):
yield env