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) <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user