conftest.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. """Pytest configuration for flowsint-core tests."""
  2. import os
  3. from unittest.mock import MagicMock
  4. import pytest
  5. from sqlalchemy import create_engine, event
  6. from sqlalchemy.orm import sessionmaker
  7. from flowsint_core.core.models import Base
  8. @pytest.fixture(autouse=True)
  9. def setup_test_environment(monkeypatch):
  10. """Set up test environment variables."""
  11. # Set a test master key for vault tests
  12. test_key = "base64:qnHTmwYb+uoygIw9MsRMY22vS5YPchY+QOi/E79GAvM="
  13. monkeypatch.setenv("MASTER_VAULT_KEY_V1", test_key)
  14. @pytest.fixture(autouse=True)
  15. def mock_logger(monkeypatch):
  16. """Mock the Logger to avoid database calls during tests."""
  17. mock = MagicMock()
  18. monkeypatch.setattr("flowsint_core.core.logger.Logger", mock)
  19. return mock
  20. @pytest.fixture
  21. def db_session():
  22. """Create an in-memory SQLite session for testing."""
  23. engine = create_engine("sqlite:///:memory:")
  24. # Enable foreign key support for SQLite
  25. @event.listens_for(engine, "connect")
  26. def set_sqlite_pragma(dbapi_connection, connection_record):
  27. cursor = dbapi_connection.cursor()
  28. cursor.execute("PRAGMA foreign_keys=ON")
  29. cursor.close()
  30. Base.metadata.create_all(engine)
  31. Session = sessionmaker(bind=engine)
  32. session = Session()
  33. yield session
  34. session.close()