From 46f128b9df2414844a02553814c2e0aac772ca2b Mon Sep 17 00:00:00 2001 From: Alexandre Teixeira <111787685+alteixeira20@users.noreply.github.com> Date: Fri, 5 Jun 2026 09:14:51 +0100 Subject: [PATCH] fix(tests): make conftest DB import clean-worktree safe Test-only fix continuing #2523. Sets an in-memory DATABASE_URL default before tests/conftest.py imports core.database, preserving explicit DATABASE_URL values and avoiding ./data artifacts in clean worktrees. --- tests/conftest.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/conftest.py b/tests/conftest.py index d816c08..b30774e 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -7,6 +7,16 @@ from unittest.mock import MagicMock sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +# Importing core.database below runs init_db() at import time, and its default +# (sqlite:///./data/app.db) can't be opened in a clean worktree because SQLite +# won't create the missing ./data parent dir — pytest then dies during +# collection, before any test module loads. Default to an in-memory DB for the +# test session so collection is deterministic and writes no repo-local +# artifacts. An explicit DATABASE_URL (a real test/CI database) is preserved. +# This only unblocks collection/import-time init; it does not provide a shared +# file-backed DB across processes — tests needing that must set DATABASE_URL. +os.environ.setdefault("DATABASE_URL", "sqlite:///:memory:") + # Pre-import real heavy modules BEFORE any test file's module-level stubs can # replace them with MagicMock. Some test files (e.g. test_llm_core_sanitize_*) # stub sqlalchemy/core.database at module scope with `if mod not in sys.modules`,