Files
llm/tests/1c/test_rag_freshness.py

61 lines
1.8 KiB
Python

from __future__ import annotations
import json
import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parents[2]
sys.path.insert(0, str(ROOT / "scripts"))
from check_1c_rag_freshness import compare_manifest # noqa: E402
def test_rag_freshness_uses_official_front_matter_source_type(tmp_path: Path) -> None:
source_dir = tmp_path / "sources"
source_dir.mkdir()
source = source_dir / "official.md"
source.write_text(
"\n".join(
[
"---",
'source: "official_1c_its"',
'source_type: "official_1c_its_glossary"',
"---",
"# Глоссарий",
"",
"Термин платформы 1С.",
]
),
encoding="utf-8",
)
manifest = tmp_path / "rag_manifest.json"
manifest.write_text(
json.dumps(
{
"sources": [
{
"source_path": "official.md",
"source_type": "official_1c_its_glossary",
"file_type": "md",
"content_hash": "unused",
}
]
},
ensure_ascii=False,
),
encoding="utf-8",
)
current = compare_manifest(source_dir, manifest)
manifest_data = json.loads(manifest.read_text(encoding="utf-8"))
manifest_data["sources"][0]["content_hash"] = current["changed"] and "wrong"
from check_1c_rag_freshness import source_state
manifest_data["sources"][0]["content_hash"] = source_state(source_dir)["official.md"]["content_hash"]
manifest.write_text(json.dumps(manifest_data, ensure_ascii=False), encoding="utf-8")
report = compare_manifest(source_dir, manifest)
assert report["status"] == "fresh"
assert report["type_changed"] == []