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`,