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