diff --git a/haiku_rag_slim/haiku/rag/client/rebuild.py b/haiku_rag_slim/haiku/rag/client/rebuild.py index ff396884..f7702f45 100644 --- a/haiku_rag_slim/haiku/rag/client/rebuild.py +++ b/haiku_rag_slim/haiku/rag/client/rebuild.py @@ -18,6 +18,8 @@ from haiku.rag.store.models.document_item import extract_items from haiku.rag.store.repositories.settings import SettingsRepository if TYPE_CHECKING: + from docling_core.types.doc.document import DoclingDocument + from haiku.rag.client import HaikuRAG, RebuildMode logger = logging.getLogger(__name__) @@ -621,7 +623,9 @@ async def _rebuild_rechunk( await _flush_rebuild_batch(client, pending_docs, pending_chunks) -def _apply_descriptions_sync(docling_doc, doc, descriptions): +def _apply_descriptions_sync( + docling_doc: "DoclingDocument", doc: Document, descriptions: dict[str, str] +) -> int: """Patch picture descriptions into the docling document and re-compress. Updates only docling_document — set_docling would also overwrite diff --git a/tests/test_rebuild.py b/tests/test_rebuild.py index 06e34877..9649a625 100644 --- a/tests/test_rebuild.py +++ b/tests/test_rebuild.py @@ -970,34 +970,6 @@ async def test_rebuild_descriptions_raises_when_blob_is_missing( pass -def test_apply_descriptions_sync_skips_pictures_without_descriptions(): - """_apply_descriptions_sync skips pictures not in the descriptions dict.""" - from unittest.mock import MagicMock - - from haiku.rag.client.rebuild import _apply_descriptions_sync - - pic_with = MagicMock() - pic_with.self_ref = "pic-1" - pic_with.meta = None - - pic_without = MagicMock() - pic_without.self_ref = "pic-2" - - docling_doc = MagicMock() - docling_doc.pictures = [pic_with, pic_without] - docling_doc.model_dump_json.return_value = "{}" - docling_doc.version = "1.0" - - doc = MagicMock() - - descriptions = {"pic-1": "A red square."} - n = _apply_descriptions_sync(docling_doc, doc, descriptions) - - assert n == 1 - assert pic_with.meta is not None - assert pic_with.meta.description.text == "A red square." - - async def _add_chunk(client: HaikuRAG, vector: list[float]) -> str: """Insert a chunk row directly, bypassing the embedder.""" record = client.store.ChunkRecord(