fix: use :memory: + StaticPool for test DBs, eliminates file:testdb_* garbage
This commit is contained in:
@@ -25,9 +25,12 @@ import decnet.config
|
|||||||
|
|
||||||
@pytest.fixture(scope="function", autouse=True)
|
@pytest.fixture(scope="function", autouse=True)
|
||||||
async def setup_db(monkeypatch) -> AsyncGenerator[None, None]:
|
async def setup_db(monkeypatch) -> AsyncGenerator[None, None]:
|
||||||
# Unique in-memory DB per test — no file I/O, no WAL/SHM side-cars
|
# StaticPool holds one connection forever — :memory: stays alive for the whole test
|
||||||
db_url = f"sqlite+aiosqlite:///file:testdb_{_uuid.uuid4().hex}?mode=memory&cache=shared"
|
engine = create_async_engine(
|
||||||
engine = create_async_engine(db_url, connect_args={"uri": True}, poolclass=StaticPool)
|
"sqlite+aiosqlite:///:memory:",
|
||||||
|
connect_args={"check_same_thread": False},
|
||||||
|
poolclass=StaticPool,
|
||||||
|
)
|
||||||
session_factory = async_sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)
|
session_factory = async_sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)
|
||||||
|
|
||||||
# Patch BOTH — session_factory is what all queries actually use
|
# Patch BOTH — session_factory is what all queries actually use
|
||||||
|
|||||||
Reference in New Issue
Block a user