Die Werkzeuge der QA-Runden lagen nur im ignorierten .qa/: CLI-Matrix (89 Fälle), Fixture-Generator, unabhängiger Markdown-Validator, Wortvergleich gegen Datenverlust, Pandoc-Prüfung (HTML, EPUB, PDF). Jetzt versioniert in tools/qa/ mit README und requirements.txt; erzeugte Daten landen weiterhin in .qa/. Pfade auf die neue Lage angepasst (Repo-Wurzel über parents[2], aufrufender Python-Interpreter). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
QA-Werkzeuge
Skripte für die Qualitätsprüfung nach Prompt_Kontrolle.md. Sie ergänzen pytest um CLI-Integrationstests,
einen unabhängigen Validator und die Prüfung des Pandoc-Wegs. Mit ihnen wurden die Befunde QA3-01 bis
QA3-06 gefunden (siehe CHANGELOG.md). Alle Aufrufe im Repo-Wurzelverzeichnis; erzeugte Daten landen in
.qa/ (von Git ignoriert), Kommandos mit Rückgabecode in .qa/commands.log.
python3 -m venv .qa/venv && . .qa/venv/bin/activate
pip install -r tools/qa/requirements.txt
| Skript | Zweck |
|---|---|
make_fixtures.py |
erzeugt synthetische Test-EPUBs 01–14 (u. a. Path Traversal, kaputter Container, MathML, Fußnoten, Typografie) in .qa/generated-fixtures/ |
run_matrix.py |
CLI-Matrix (89 Fälle) über alle Optionen und Fehlercodes → .qa/output/matrix-results.json; braucht die Fixtures |
validate_output.py AUSGABE… |
unabhängiger Validator (markdown-it-py statt epub2md/linkcheck.py): Links, Anker, Bilder, Fences, YAML, JSON, Python-Einrückung, Fußnotenpaare → JSON |
worddiff.py ALT NEU |
Wortvergleich zweier Ausgaben – zeigt Datenverlust nach einer Codeänderung |
pyblocks.py DATEIEN… |
Python-Codeblöcke mit Einrückungsfehlern samt Inhalt (Vergleich mit der Quelle) |
pandoc_full.sh |
alle EPUBs aus Beispiele/ konvertieren, zusammenfügen und mit den Pandoc-Befehlen der Buch-README nach HTML, EPUB und PDF (weasyprint, xelatex) bringen → .qa/output/pandoc/ |
pandoc_run.sh, pandoc_pdfs.sh |
Teilschritte von pandoc_full.sh für einzelne Buchordner |
check_pandoc.py BUCHORDNER… |
HTML/EPUB von Pandoc: interne Links und Anker, Bilder, [!TIP]-Reste, Formeln, Lage des Inhaltsverzeichnisses |
check_pdf.sh PDF… |
Seiten, Seite des Inhaltsverzeichnisses, Text-Reste, nicht eingebettete Schriften (poppler-utils) |
log.sh |
. tools/qa/log.sh; qa BEFEHL protokolliert Befehl und rc |
Typischer Ablauf nach einer Änderung:
python -m pytest -q
python tools/qa/make_fixtures.py && python tools/qa/run_matrix.py
python epub2md.py Beispiele/BUCH.epub .qa/output/neu/BUCH
python tools/qa/worddiff.py .qa/output/alt/BUCH .qa/output/neu/BUCH # alt: z. B. mit git stash erzeugt
python tools/qa/validate_output.py .qa/output/neu/BUCH