39 lines
1.2 KiB
Python
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
|