from __future__ import annotations import importlib.util from pathlib import Path ROOT = Path(__file__).resolve().parents[1] def load_script(name: str): path = ROOT / "scripts" / name spec = importlib.util.spec_from_file_location(path.stem, path) module = importlib.util.module_from_spec(spec) assert spec and spec.loader spec.loader.exec_module(module) return module def test_fixture_is_valid_and_gold_is_not_exported(tmp_path: Path) -> None: module = load_script("prepare_longmemeval.py") rows = module.load_and_validate(ROOT / "fixtures" / "tiny_longmemeval.json") assert [row["question_id"] for row in rows] == ["tmcra_fixture_user", "tmcra_fixture_update"] output = tmp_path / "qids.txt" output.write_text("\n".join(str(row["question_id"]) for row in rows) + "\n", encoding="utf-8") text = output.read_text(encoding="utf-8") assert "Tea" not in text assert "Shanghai" not in text