From daa58e6b27cf85b012c2faed437d86da98fee05e Mon Sep 17 00:00:00 2001 From: Lars Date: Tue, 30 Sep 2025 12:09:18 +0200 Subject: [PATCH] tests/verify_chunks_integrity.py aktualisiert --- tests/verify_chunks_integrity.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/tests/verify_chunks_integrity.py b/tests/verify_chunks_integrity.py index 3f10665..78f2f3c 100644 --- a/tests/verify_chunks_integrity.py +++ b/tests/verify_chunks_integrity.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- """ Script: tests/verify_chunks_integrity.py -Version: 1.0.0 +Version: 1.0.1 Datum: 2025-09-10 Zweck @@ -12,12 +12,6 @@ Verifiziert die Text-Integrität der gespeicherten Chunks: 2) Vergleicht mit dem in Qdrant gespeicherten Note-`fulltext` (falls vorhanden). 3) Optional: Vergleicht zusätzlich mit dem Body der zugehörigen Markdown-Datei im Vault. -Output ------- -- Pro Note eine JSON-Zeile mit: - note_id, chunks_count, chunks_with_text, match_fulltext, match_vault (optional), issues -- Zum Schluss eine Summary mit Counts und Exit-Code 1 bei Fehlern (falls --fail-on-mismatch gesetzt). - Aufrufe ------- # Nur gegen Qdrant (fulltext vs. Chunks) @@ -26,19 +20,22 @@ Aufrufe # Zusätzlich gegen den Vault abgleichen (Body der .md-Datei) python3 tests/verify_chunks_integrity.py --prefix mindnet --vault ./test_vault - # Whitespace-tolerant (Default): Trim/Normalisierung ein - python3 tests/verify_chunks_integrity.py --prefix mindnet --vault ./test_vault - - # Strikt (kein Trimmen): - python3 tests/verify_chunks_integrity.py --prefix mindnet --strict --fail-on-mismatch + # Streng + CI-geeignet (Fehlercode bei Abweichungen): + python3 tests/verify_chunks_integrity.py --prefix mindnet --vault ./test_vault --strict --fail-on-mismatch """ from __future__ import annotations import argparse import json import os +import sys from typing import Any, Dict, List, Optional, Tuple +# --- FIX: Projekt-Root in sys.path aufnehmen, damit 'app.*' importierbar ist --- +PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) +if PROJECT_ROOT not in sys.path: + sys.path.insert(0, PROJECT_ROOT) + import yaml from qdrant_client.http import models as rest @@ -99,7 +96,6 @@ def normalize(s: str, strict: bool = False) -> str: s = s.replace("\r\n", "\n").replace("\r", "\n") if strict: return s - # toleranter Vergleich: trim trailing WS, entferne überzählige Leerzeilen am Rand lines = [ln.rstrip() for ln in s.strip().split("\n")] return "\n".join(lines).strip()