mirror of
https://github.com/lllin000/PaperForge.git
synced 2026-07-22 06:50:53 +00:00
test: lock OCR phase4 version state contract
This commit is contained in:
parent
5a8460aae0
commit
0bc6b15291
2 changed files with 56 additions and 0 deletions
|
|
@ -509,3 +509,37 @@ def test_postprocess_writes_ocr_health(tmp_path: Path) -> None:
|
|||
|
||||
# Phase 3: health/ocr_health.json does not exist yet -- this test will fail
|
||||
assert (ocr_dir / "health" / "ocr_health.json").exists()
|
||||
|
||||
|
||||
def test_version_state_classifiable_from_meta_json(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 / "VST001"
|
||||
ocr_dir.mkdir()
|
||||
(ocr_dir / "meta.json").write_text(
|
||||
'{"zotero_key":"VST001","ocr_status":"done","ocr_model":"PaddleOCR"}',
|
||||
encoding="utf-8",
|
||||
)
|
||||
|
||||
_, _, _, _ = postprocess_ocr_result(vault, "VST001", [])
|
||||
|
||||
meta = json.loads((ocr_dir / "meta.json").read_text(encoding="utf-8"))
|
||||
from paperforge.worker.ocr_versions import classify_version_state
|
||||
|
||||
state = classify_version_state(
|
||||
meta=meta,
|
||||
expected_raw={"ocr_model": meta["raw_version"]["ocr_model"], "ocr_provider": "PaddleOCR"},
|
||||
expected_derived={"renderer_version": "2.0.0"},
|
||||
)
|
||||
assert "raw_upgradable" in state
|
||||
assert "derived_stale" in state
|
||||
|
|
|
|||
22
tests/test_ocr_versions.py
Normal file
22
tests/test_ocr_versions.py
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
from __future__ import annotations
|
||||
|
||||
|
||||
def test_version_state_distinguishes_raw_vs_derived_drift() -> None:
|
||||
from paperforge.worker.ocr_versions import classify_version_state
|
||||
|
||||
state = classify_version_state(
|
||||
meta={
|
||||
"raw_version": {"ocr_model": "PaddleOCR-VL-1.5", "pdf_fingerprint": "sha256:a"},
|
||||
"derived_version": {"renderer_version": "1.0.0-compat"},
|
||||
},
|
||||
expected_raw={
|
||||
"ocr_model": "PaddleOCR-VL-1.6",
|
||||
"pdf_fingerprint": "sha256:a",
|
||||
},
|
||||
expected_derived={
|
||||
"renderer_version": "2.0.0",
|
||||
},
|
||||
)
|
||||
|
||||
assert state["raw_upgradable"] is True
|
||||
assert state["derived_stale"] is True
|
||||
Loading…
Reference in a new issue