RICS / backend /tests /test_reference_policy.py
StormShadow308's picture
Add demo documentation and Docker setup for v2 report generation system
aad7814
Raw
History Blame Contribute Delete
1.47 kB
from __future__ import annotations
from backend.config import settings
from backend.core.ingest import _operator_filenames_lower, auto_ingest_reference_dir
def test_operator_bundle_files_excluded_from_reference_scan():
names = _operator_filenames_lower()
assert settings.report_template_filename.lower() in names
assert settings.standard_paragraphs_filename.lower() in names
def test_reference_auto_ingest_skips_operator_pdf(tmp_path, monkeypatch):
monkeypatch.setattr(settings, "data_dir", str(tmp_path / "data"))
monkeypatch.setattr(settings, "master_template_dir", str(tmp_path))
monkeypatch.setattr(settings, "reference_auto_ingest_dir", "")
monkeypatch.setattr(settings, "reference_auto_ingest_enabled", True)
monkeypatch.setattr(
settings, "report_template_filename", "SAMPLE LEVEL 3 REPORT NCS.pdf"
)
monkeypatch.setattr(
settings, "standard_paragraphs_filename", "HB-BS STANDARD PARAS v6 Sept 2015.doc"
)
folder = tmp_path
(folder / "SAMPLE LEVEL 3 REPORT NCS.pdf").write_bytes(b"%PDF-1.4 fake")
(folder / "HB-BS STANDARD PARAS v6 Sept 2015.doc").write_bytes(b"fake")
(folder / "extra_report.pdf").write_bytes(b"%PDF-1.4 extra")
# Only extra_report.pdf should be attempted; fake PDFs may fail parse but are counted
res = auto_ingest_reference_dir("default")
# Operator files must never be in the scan — at most 1 doc (extra only)
assert res["documents"] <= 1