from __future__ import annotations from tools.graphrag.graphrag import ( build_graph_payload, extract_works, ) DARIUS_PATH = "pages/students/2016/" "darius_lindvai/README.md" def make_darius_document() -> dict: return { "path": DARIUS_PATH, "title": "Dárius Lindvai", "categories": [ "dp2021", "bp2019", ], "tags": [ "nn", "interpunction", "nlp", ], "author": "Daniel Hladek", "published": True, } def make_root_chunk() -> dict: text = ( "Dokument: Dárius Lindvai\n\n" "Rok začiatku štúdia: 2016\n\n" "Repozitár so zdrojovými kódmi\n\n" "Názov: Obnovenie interpunkcie pomocou " "hlbokých neurónových sietí\n\n" "1. Vypracujte prehľad metód.\n" "2. Vyberte vhodnú metódu." ) return { "chunk_id": (f"{DARIUS_PATH}::chunk-0"), "document_path": DARIUS_PATH, "title": "Dárius Lindvai", "categories": [ "dp2021", "bp2019", ], "tags": [ "nn", "interpunction", "nlp", ], "author": "Daniel Hladek", "published": True, "chunk_index": 0, "heading_paths": [ [ "Dárius Lindvai", ] ], "text": text, "text_length": len(text), "token_count": 1, "content_hash": "darius-root", } def test_root_title_creates_missing_latest_thesis() -> None: works = extract_works( make_darius_document(), [ make_root_chunk(), ], ) diploma = [work for work in works if (work["work_type"] == "diploma_thesis")] bachelor = [work for work in works if (work["work_type"] == "bachelor_thesis")] assert len(diploma) == 1 assert bachelor == [] thesis = diploma[0] assert thesis["year"] == 2021 assert thesis["heading"] == "Diplomová práca 2021" assert thesis["title"] == ("Obnovenie interpunkcie pomocou " "hlbokých neurónových sietí") assert thesis["source_chunk_ids"] == [f"{DARIUS_PATH}::chunk-0"] def test_graph_payload_contains_darius_thesis() -> None: payload = build_graph_payload( [ make_darius_document(), ], [ make_root_chunk(), ], ) assert len(payload["theses"]) == 1 thesis = payload["theses"][0] assert thesis["thesis_type"] == "diploma_thesis" assert thesis["year"] == 2021 assert thesis["title"] == ("Obnovenie interpunkcie pomocou " "hlbokých neurónových sietí") assert thesis["source_document"] == DARIUS_PATH assert payload["works"] == []