27 lines
1.3 KiB
Python
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)))
|