File size: 1,468 Bytes
aad7814
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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