""" Root Test Configuration — Global Guards Against Environmental Pollution ======================================================================= This conftest protects ALL tests from the #1 cause of mass failure: Config() constructor calling argparse.parse_known_args() which reads sys.argv (pytest's arguments) and crashes with SystemExit: 2. Every test directory inherits these fixtures automatically. """ import sys import pytest @pytest.fixture(autouse=True) def _isolate_config_from_argparse(monkeypatch): """Prevent Config() from reading sys.argv during tests. Root cause: Config.__init__ calls self.parse_args() which calls self.parser.parse_known_args(). In pytest, sys.argv contains pytest flags like '--ignore=...' which argparse interprets as Config arguments, causing SystemExit: 2. Fix: Temporarily set sys.argv to a minimal list so argparse doesn't choke on pytest's arguments. """ monkeypatch.setattr(sys, "argv", ["test_runner"]) # ═══════════════════════════════════════════════════════ # Pytest Markers Registration # ═══════════════════════════════════════════════════════ def pytest_configure(config): config.addinivalue_line("markers", "live_llm: requires a running local LLM (Ollama)")