mirror of
https://github.com/lllin000/PaperForge.git
synced 2026-07-22 06:50:53 +00:00
test: lock OCR phase5 role index contract
This commit is contained in:
parent
d25dd1857a
commit
4f6b250ca3
2 changed files with 52 additions and 0 deletions
|
|
@ -543,3 +543,28 @@ def test_version_state_classifiable_from_meta_json(tmp_path: Path) -> None:
|
|||
)
|
||||
assert "raw_upgradable" in state
|
||||
assert "derived_stale" in state
|
||||
|
||||
|
||||
def test_postprocess_writes_role_index(tmp_path: Path) -> None:
|
||||
import json
|
||||
|
||||
from paperforge.worker.ocr import postprocess_ocr_result
|
||||
|
||||
vault = tmp_path / "vault"
|
||||
vault.mkdir()
|
||||
(vault / "paperforge.json").write_text(
|
||||
json.dumps({"vault_config": {"system_dir": "System", "resources_dir": "Resources"}}),
|
||||
encoding="utf-8",
|
||||
)
|
||||
ocr_root = vault / "System" / "PaperForge" / "ocr"
|
||||
ocr_root.mkdir(parents=True)
|
||||
ocr_dir = ocr_root / "IDX001"
|
||||
ocr_dir.mkdir()
|
||||
(ocr_dir / "meta.json").write_text(
|
||||
'{"zotero_key":"IDX001","ocr_status":"done","ocr_model":"PaddleOCR"}',
|
||||
encoding="utf-8",
|
||||
)
|
||||
|
||||
_, _, _, _ = postprocess_ocr_result(vault, "IDX001", [])
|
||||
|
||||
assert (ocr_dir / "index" / "role-index.json").exists()
|
||||
|
|
|
|||
27
tests/test_ocr_index.py
Normal file
27
tests/test_ocr_index.py
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
from __future__ import annotations
|
||||
|
||||
|
||||
def test_role_index_separates_body_caption_table_metadata_reference() -> None:
|
||||
from paperforge.worker.ocr_index import build_role_indexes
|
||||
|
||||
structured_blocks = [
|
||||
{"paper_id": "KEY001", "page": 1, "block_id": "b1", "role": "body_paragraph", "text": "Methods body"},
|
||||
{"paper_id": "KEY001", "page": 1, "block_id": "b2", "role": "figure_caption", "text": "Figure 1. Result"},
|
||||
{"paper_id": "KEY001", "page": 1, "block_id": "b3", "role": "table_caption", "text": "Table 1. Data"},
|
||||
{"paper_id": "KEY001", "page": 1, "block_id": "b4", "role": "reference_item", "text": "Smith et al. (2024)."},
|
||||
]
|
||||
resolved_metadata = {
|
||||
"title": {"value": "Paper Title"},
|
||||
"doi": {"value": "10.1000/xyz"},
|
||||
}
|
||||
|
||||
indexes = build_role_indexes(
|
||||
structured_blocks=structured_blocks,
|
||||
resolved_metadata=resolved_metadata,
|
||||
)
|
||||
|
||||
assert "body" in indexes
|
||||
assert "captions" in indexes
|
||||
assert "tables" in indexes
|
||||
assert "metadata" in indexes
|
||||
assert "references" in indexes
|
||||
Loading…
Reference in a new issue