fix: use :memory: + StaticPool for test DBs, eliminates file:testdb_* garbage

This commit is contained in:
2026-04-09 18:39:36 -04:00
parent d15c106b44
commit dbf6d13b95

View File

@@ -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