Files
anonymisation/tests/unit/test_manual_masking.py
Domi31tls a02e89b7ba test: non-régression F5 + batch paths + masquage manuel + layouts réels
- test_f5_nom_compose_orphelin.py : 13 tests (regex F5, application, scénario Trackare EJNAINI)
- test_gui_batch_paths.py / test_manual_masking.py : couverture des modules
- test_real_world_identifier_layouts.py : non-régression layouts réels (D-15)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 16:30:56 +02:00

61 lines
2.1 KiB
Python

from pathlib import Path
from manual_masking import (
DEFAULT_MASK_OUTPUT_DIRNAME,
DEFAULT_MASK_PREVIEW_DIRNAME,
append_jsonl_file,
ensure_mask_templates_dir,
list_mask_templates,
mask_templates_dir,
mask_template_label,
resolve_manual_mask_pdf,
)
def test_mask_templates_dir_is_under_config():
base = Path("/tmp/anonymisation")
assert mask_templates_dir(base) == base / "config" / "mask_templates"
def test_ensure_mask_templates_dir_creates_folder(tmp_path: Path):
created = ensure_mask_templates_dir(tmp_path)
assert created == tmp_path / "config" / "mask_templates"
assert created.is_dir()
def test_resolve_manual_mask_pdf_accepts_only_pdf():
assert resolve_manual_mask_pdf(Path("/tmp/test.pdf")) == Path("/tmp/test.pdf")
assert resolve_manual_mask_pdf(Path("/tmp/test.PDF")) == Path("/tmp/test.PDF")
assert resolve_manual_mask_pdf(Path("/tmp/test.docx")) is None
assert resolve_manual_mask_pdf(None) is None
def test_manual_mask_outputs_follow_project_convention():
assert DEFAULT_MASK_OUTPUT_DIRNAME == "anonymise"
assert DEFAULT_MASK_PREVIEW_DIRNAME == "anonymise_preview"
def test_list_mask_templates_filters_supported_extensions(tmp_path: Path):
templates_dir = ensure_mask_templates_dir(tmp_path)
kept = templates_dir / "alpha.yml"
other = templates_dir / "beta.txt"
nested = templates_dir / "nested" / "gamma.json"
nested.parent.mkdir(parents=True)
kept.write_text("x", encoding="utf-8")
other.write_text("x", encoding="utf-8")
nested.write_text("x", encoding="utf-8")
assert list_mask_templates(tmp_path) == [kept, nested]
assert mask_template_label(nested, tmp_path) == "nested/gamma.json"
def test_append_jsonl_file_appends_non_empty_content(tmp_path: Path):
target = tmp_path / "target.jsonl"
extra = tmp_path / "extra.jsonl"
target.write_text('{"kind":"A"}\n', encoding="utf-8")
extra.write_text('{"kind":"B"}\n', encoding="utf-8")
append_jsonl_file(target, extra)
assert target.read_text(encoding="utf-8") == '{"kind":"A"}\n{"kind":"B"}\n'