API-KA — plateforme centrale : collecte quotidienne des 8 services KA, historisation append-only et API publique sur www.api-ka.com
1# ============================================2# Projet : API-KA3# Fichier : tests/conftest.py4# Node : m3u96b5# Author : Simon-Pierre Boucher6# Contact : contact@spboucher.ai7# Date : 2026-08-168# ============================================9"""Fixtures pytest : environnement de test (SQLite temporaire) et base initialisée.1011L'environnement est configuré au chargement du module, AVANT tout import de12``src.*`` par les modules de test, afin que ``get_settings()`` lise les bonnes13valeurs dès le premier appel.14"""1516from __future__ import annotations1718import os19import tempfile2021_TMP_DIR = tempfile.mkdtemp(prefix="apika-tests-")22os.environ["APP_ENV"] = "test"23os.environ["DATABASE_URL"] = f"sqlite:///{_TMP_DIR}/apika_test.db"24for _svc in ("LOUKA", "IMMOKA", "FOODKA", "AUTOKA", "FABRIKA"):25 os.environ[f"{_svc}_SOURCE_URL"] = f"https://example.test/{_svc.lower()}"2627import pytest # noqa: E4022829from src.config import get_settings # noqa: E4023031get_settings.cache_clear()3233from src.database import db as db_module # noqa: E4023435db_module.reset_engine()36db_module.init_db()373839@pytest.fixture()40def db_session():41 """Session SQLAlchemy transactionnelle sur la base de test."""42 with db_module.session_scope() as session:43 yield session444546@pytest.fixture(autouse=True)47def no_backup(monkeypatch: pytest.MonkeyPatch):48 """Neutralise les backups disque pendant les tests de collecteurs."""49 monkeypatch.setattr(50 "src.collectors.base_collector.backup_service", lambda *args, **kwargs: None51 )52