kindle-zotero_importer/tests/test_final_plan.py
2026-09-18 18:54:25 +02:00

23 lines
1.1 KiB
Python

from kindle_zotero_importer.final_plan import build_final_writer_plan
def test_final_includes_kindle_id_tag():
positioned = {
"format":"x",
"items":[
{"status":"positioned","clipping":{"id":"abc123","title":"T","added_on":None,"added_on_iso":None},
"zotero":{"attachment":{"item_id":1,"key":"K1"},"parent_item_id":10,"parent_key":"P1","citation_key":"c1"},
"annotation":{"type":"highlight","text":"hi","position":{"type":"FragmentSelector","value":"cfi"}}}
]
}
plan = build_final_writer_plan(positioned)
assert plan["annotation_count"]==1
tags = plan["annotations"][0]["annotation"]["tags"]
assert {"name":"kindle-import"} in tags
assert {"name":"kindle-id:abc123"} in tags
assert plan["annotations"][0]["clipping_id"]=="abc123"
def test_final_skips_non_positioned():
positioned = {"format":"x","items":[{"status":"epub-text-not-found","clipping":{"id":"a"},"zotero":{},"annotation":{}}]}
plan = build_final_writer_plan(positioned)
assert plan["annotation_count"]==0
assert plan["skipped_counts"]["epub-text-not-found"]==1