Files
flowsint/flowsint-core/tests/conftest.py
2026-02-12 22:03:04 +01:00

47 lines
1.3 KiB
Python

"""Pytest configuration for flowsint-core tests."""
import os
from unittest.mock import MagicMock
import pytest
from sqlalchemy import create_engine, event
from sqlalchemy.orm import sessionmaker
from flowsint_core.core.models import Base
@pytest.fixture(autouse=True)
def setup_test_environment(monkeypatch):
"""Set up test environment variables."""
# Set a test master key for vault tests
test_key = "base64:qnHTmwYb+uoygIw9MsRMY22vS5YPchY+QOi/E79GAvM="
monkeypatch.setenv("MASTER_VAULT_KEY_V1", test_key)
@pytest.fixture(autouse=True)
def mock_logger(monkeypatch):
"""Mock the Logger to avoid database calls during tests."""
mock = MagicMock()
monkeypatch.setattr("flowsint_core.core.logger.Logger", mock)
return mock
@pytest.fixture
def db_session():
"""Create an in-memory SQLite session for testing."""
engine = create_engine("sqlite:///:memory:")
# Enable foreign key support for SQLite
@event.listens_for(engine, "connect")
def set_sqlite_pragma(dbapi_connection, connection_record):
cursor = dbapi_connection.cursor()
cursor.execute("PRAGMA foreign_keys=ON")
cursor.close()
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
yield session
session.close()