fix: always write ocr_redo field in frontmatter_note (defaults to false)

This commit is contained in:
Research Assistant 2026-06-01 12:47:57 +08:00
parent 22b32b766e
commit fb7a97fa8d
2 changed files with 61 additions and 2 deletions

View file

@ -1037,8 +1037,8 @@ def frontmatter_note(entry: dict, existing_text: str = "", preserved_tags: list[
f"fulltext_md_path: {yaml_quote('[[{}]]'.format(entry['fulltext_path']) if entry.get('ocr_status') == 'done' and entry.get('fulltext_path') else '')}",
]
)
if preserved_ocr_redo:
lines.append("ocr_redo: true")
ocr_redo_value = bool(preserved_ocr_redo)
lines.append(f"ocr_redo: {str(ocr_redo_value).lower()}")
if preserved_tags is not None:
lines.append("tags:")
for tag in preserved_tags:

59
tests/test_sync.py Normal file
View file

@ -0,0 +1,59 @@
def test_frontmatter_note_writes_ocr_redo_false_by_default():
from paperforge.worker.sync import frontmatter_note
entry = {
"title": "Test Paper",
"zotero_key": "ABCD1234",
"citation_key": "test2024",
"year": "2024",
"journal": "Test Journal",
"first_author": "Smith",
"domain": "test",
"doi": "",
"pmid": "",
"collections": [],
"collection_tags": [],
"impact_factor": "",
"abstract": "",
"has_pdf": False,
"do_ocr": False,
"analyze": False,
"ocr_status": "pending",
"deep_reading_status": "pending",
"pdf_path": "",
"fulltext_path": "",
}
result = frontmatter_note(entry)
assert "ocr_redo: false" in result
def test_frontmatter_note_preserves_ocr_redo_true():
from paperforge.worker.sync import frontmatter_note
entry = {
"title": "Test Paper",
"zotero_key": "ABCD1234",
"citation_key": "test2024",
"year": "2024",
"journal": "Test Journal",
"first_author": "Smith",
"domain": "test",
"doi": "",
"pmid": "",
"collections": [],
"collection_tags": [],
"impact_factor": "",
"abstract": "",
"has_pdf": False,
"do_ocr": False,
"analyze": False,
"ocr_status": "pending",
"deep_reading_status": "pending",
"pdf_path": "",
"fulltext_path": "",
}
result = frontmatter_note(entry, preserved_ocr_redo=True)
assert "ocr_redo: true" in result
assert "ocr_redo: false" not in result