From 965185c6f980c1500737a60eab3d5339f33f97bb Mon Sep 17 00:00:00 2001 From: Wes Huber Date: Thu, 4 Jun 2026 03:39:49 -0700 Subject: [PATCH] fix(tests): pre-import real sqlalchemy/database in conftest to prevent stub contamination (#2398) Some test files (e.g. test_llm_core_sanitize_tool_calls) stub sqlalchemy and core.database at module level with `if mod not in sys.modules`. During pytest collection these stubs fire before the real modules are imported, contaminating every subsequent test that needs real ORM objects (IntegrityError, missing columns, etc.). Pre-import the real modules in conftest.py so the module-level guards find them already loaded and skip the stubs. Fixes ~10+ cascading test failures that only appear in the full suite. Fixes #2395 Co-authored-by: Claude Opus 4.6 (1M context) --- tests/conftest.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/conftest.py b/tests/conftest.py index d103408..d816c08 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -7,6 +7,18 @@ from unittest.mock import MagicMock sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +# 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`, +# which fires during collection. If the real module hasn't been imported yet, +# the stub wins and contaminates every subsequent test that needs the real ORM. +try: + import sqlalchemy # noqa: F401 + import sqlalchemy.orm # noqa: F401 + import core.database # noqa: F401 +except ImportError: + pass # not installed — the stubs below will handle it + def _has_module(mod_name: str) -> bool: try: return importlib.util.find_spec(mod_name) is not None