MicroFish/backend/tests/conftest.py

39 lines
1.2 KiB
Python

# backend/tests/conftest.py
import pytest
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from backend.app.db import Base
import backend.app.db as db_module
@pytest.fixture(autouse=True)
def reset_graph_factory_singleton():
"""Reset the graph backend singleton before each test."""
yield
try:
import backend.app.graph.factory as fmod
fmod._backend_instance = None
except ImportError:
pass
@pytest.fixture(autouse=True)
def reset_task_manager_singleton():
"""Reset TaskManager singleton between tests."""
from backend.app.models import task as task_module
task_module.TaskManager._instance = None
yield
task_module.TaskManager._instance = None
@pytest.fixture
def in_memory_db():
"""BD SQLite en memòria per a tests que necessiten BD."""
db_module._engine = create_engine("sqlite:///:memory:", connect_args={"check_same_thread": False})
db_module._SessionLocal = sessionmaker(bind=db_module._engine, autocommit=False, autoflush=False)
Base.metadata.create_all(db_module._engine)
yield db_module._engine
Base.metadata.drop_all(db_module._engine)
db_module._engine = None
db_module._SessionLocal = None