dp-zp-agent/conftest.py
jp170na 5cd0f5ba9e Upratanie projektu
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-14 03:16:54 +01:00

27 lines
1.3 KiB
Python

"""Shared test defaults: heavy optional models stay off unless a test enables them.
Lemmatization (Stanza) and the cross-encoder reranker change retrieval order;
regression tests must not depend on locally downloaded models. Dedicated tests
enable them with stand-ins.
"""
import os
os.environ.setdefault("RETRIEVAL_LEMMATIZER", "off")
os.environ.setdefault("RETRIEVAL_RERANKER", "off")
# Evaluation code lives outside Git (see local/OBSAH.md). Without it, tests that
# import it at module level are skipped at collection instead of failing.
import importlib.util
import pathlib
import re
_EVAL_IMPORT = re.compile(r"^(?:from|import) tools\.(?:evaluation|graphrag\.evaluation|rag\.evaluation)\b", re.M)
_ROOT = pathlib.Path(__file__).parent
_EVAL_MISSING = importlib.util.find_spec("tools.evaluation") is None or importlib.util.find_spec("tools.graphrag.evaluation") is None
_QUESTIONS_MISSING = not (_ROOT / "tools/knowledge/questions.json").exists()
collect_ignore = []
for _path in [*_ROOT.glob("test/test_*.py"), *_ROOT.glob("tools/*/tests/test_*.py")]:
_text = _path.read_text(encoding="utf-8")
if (_EVAL_MISSING and _EVAL_IMPORT.search(_text)) or (_QUESTIONS_MISSING and "tools/knowledge/questions.json" in _text):
collect_ignore.append(str(_path.relative_to(_ROOT)))