Tests für die vier Kernmodule der Datenpipeline ergänzt (#63) #64

Merged
Daniel merged 1 commits from feature/63-tests-datenpipeline into unstable 2026-09-18 08:05:27 +00:00
Member

Was

Vier Kernmodule der Datenpipeline (Datenabruf.py, Datenschreiber.py, LayerLoader.py, excel_importer.py) bekommen Mock-Modus-Tests – sie waren laut Testkatalog die einzigen Module ganz ohne Testdatei. Issue: #63

Wie geprüft

  • python scripts/run_tests.py sn_basis --baseline: GRÜN 166/166 bestanden, 0 Fehlschläge, 0 Fehler, unverändert gegenüber Baseline (vorher 96/96)
  • QGIS-Test: nicht nötig – alle getesteten Funktionen sind reine Logik (String-/URL-Bau, Datei-/GeoPackage-Zugriff), im Mock-Modus ohne echtes QGIS-Rendering geprüft

Änderungen an Verträgen

keine – nur Tests ergänzt, dazu zwei fehlende Methoden (transformContext, addMapLayer) im bereits vorhandenen _MockQgsProject in qgiscore_wrapper.py nachgetragen (Mock-Vervollständigung, keine Verhaltensänderung für QGIS selbst)

Übergabenotiz

Aufgabe: Basis #63 – Tests für die vier ungetesteten Kernmodule der Datenpipeline
Stand: fertig
Geändert:

  • tests/test_datenabruf.py (neu, 24 Tests) – datenabruf, _determine_spatial_filter, _build_provider_url (WFS/REST/WMS/Default), _fetch_features
  • tests/test_datenschreiber.py (neu, 14 Tests) – schreibe_Daten, lade_Layer, _write_layer_to_gpkg, schreibe_log, _resolve_style_path
  • tests/test_layerloader.py (neu, 25 Tests) – create_layer, CRS-Transformation, filter_by_extent, filter_by_layer, add_to_project
  • tests/test_excel_importer.py (neu, 7 Tests) – import_xlsx (Erfolg + 3 Fehlerzweige)
  • functions/qgiscore_wrapper.py – _MockQgsProject.transformContext()/addMapLayer() ergänzt (fehlten, siehe fallstricke.md)
  • changelog.txt ergänzt
    Nachweis: siehe oben
    Entscheidungen/Annahmen: Tests decken die in #63 priorisierten Funktionen ab, nicht die volle Restliste aus docs/tests/testkatalog.md. filter_by_extent/filter_by_layer nutzen eigene Fake-Layer-Objekte statt der echten Mock-Klasse, da diese für den Vektor-Layer-Typ-Vergleich und dataProvider() nicht vollständig genug ist.
    Offen / nächste Schritte: separates Issue für den vermuteten Bug in Datenschreiber._resolve_style_path/ly_style_wrapper.apply_style (hartkodierte Fachplugin-Namen) noch zu erstellen.
    Wissensbasis: docs/wissen/fallstricke.md (unvollständiger _MockQgsProject), docs/architektur/modulkarte.md (Testdateizahl), docs/status/STATUS.md (Testzahlen, Wer-arbeitet-woran) – im separaten Commit im Projektwissen-Repo.
    Kontext für die nächste Sitzung: docs/tests/testkatalog.md Abschnitt „Ungetestete Funktionen" (sn_basis) für weitere Kandidaten; das offene Bug-Issue zu den hartkodierten Stilpfaden.

Checkliste

  • Nur Änderungen zum Issue
  • Keine direkten Qt/QGIS-Importe, keine Debug-print
  • changelog.txt ergänzt
  • Wissensbasis nachgezogen
Was Vier Kernmodule der Datenpipeline (Datenabruf.py, Datenschreiber.py, LayerLoader.py, excel_importer.py) bekommen Mock-Modus-Tests – sie waren laut Testkatalog die einzigen Module ganz ohne Testdatei. Issue: #63 Wie geprüft - python scripts/run_tests.py sn_basis --baseline: GRÜN 166/166 bestanden, 0 Fehlschläge, 0 Fehler, unverändert gegenüber Baseline (vorher 96/96) - QGIS-Test: nicht nötig – alle getesteten Funktionen sind reine Logik (String-/URL-Bau, Datei-/GeoPackage-Zugriff), im Mock-Modus ohne echtes QGIS-Rendering geprüft Änderungen an Verträgen keine – nur Tests ergänzt, dazu zwei fehlende Methoden (transformContext, addMapLayer) im bereits vorhandenen _MockQgsProject in qgiscore_wrapper.py nachgetragen (Mock-Vervollständigung, keine Verhaltensänderung für QGIS selbst) Übergabenotiz Aufgabe: Basis #63 – Tests für die vier ungetesteten Kernmodule der Datenpipeline Stand: fertig Geändert: - tests/test_datenabruf.py (neu, 24 Tests) – datenabruf, _determine_spatial_filter, _build_provider_url (WFS/REST/WMS/Default), _fetch_features - tests/test_datenschreiber.py (neu, 14 Tests) – schreibe_Daten, lade_Layer, _write_layer_to_gpkg, schreibe_log, _resolve_style_path - tests/test_layerloader.py (neu, 25 Tests) – create_layer, CRS-Transformation, filter_by_extent, filter_by_layer, add_to_project - tests/test_excel_importer.py (neu, 7 Tests) – import_xlsx (Erfolg + 3 Fehlerzweige) - functions/qgiscore_wrapper.py – _MockQgsProject.transformContext()/addMapLayer() ergänzt (fehlten, siehe fallstricke.md) - changelog.txt ergänzt Nachweis: siehe oben Entscheidungen/Annahmen: Tests decken die in #63 priorisierten Funktionen ab, nicht die volle Restliste aus docs/tests/testkatalog.md. filter_by_extent/filter_by_layer nutzen eigene Fake-Layer-Objekte statt der echten Mock-Klasse, da diese für den Vektor-Layer-Typ-Vergleich und dataProvider() nicht vollständig genug ist. Offen / nächste Schritte: separates Issue für den vermuteten Bug in Datenschreiber._resolve_style_path/ly_style_wrapper.apply_style (hartkodierte Fachplugin-Namen) noch zu erstellen. Wissensbasis: docs/wissen/fallstricke.md (unvollständiger _MockQgsProject), docs/architektur/modulkarte.md (Testdateizahl), docs/status/STATUS.md (Testzahlen, Wer-arbeitet-woran) – im separaten Commit im Projektwissen-Repo. Kontext für die nächste Sitzung: docs/tests/testkatalog.md Abschnitt „Ungetestete Funktionen" (sn_basis) für weitere Kandidaten; das offene Bug-Issue zu den hartkodierten Stilpfaden. Checkliste - [x] Nur Änderungen zum Issue - [x] Keine direkten Qt/QGIS-Importe, keine Debug-print - [x] changelog.txt ergänzt - [x] Wissensbasis nachgezogen
Daniel added 1 commit 2026-09-18 08:05:20 +00:00
70 neue Testfälle für Datenabruf.py, Datenschreiber.py, LayerLoader.py und
excel_importer.py - die einzigen Module ohne jede Testdatei laut
Testkatalog-Abschnitt "Ungetestete Funktionen". Schwerpunkt: Provider-URL-
Bau (WFS/REST/OGR), Raumfilter, CRS-Transformation, GPKG-Schreib-/Ladepfad
und Excel-Import-Fehlerzweige.

qgiscore_wrapper._MockQgsProject um transformContext() und addMapLayer()
ergänzt - beide fehlten im Mock und ließen die betroffenen Funktionen im
Mock-Modus für jeden gültigen Layer scheitern (siehe fallstricke.md).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Daniel merged commit b57a614ec3 into unstable 2026-09-18 08:05:27 +00:00
Daniel deleted branch feature/63-tests-datenpipeline 2026-09-18 08:05:27 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: AG_QGIS/Plugin_SN_Basis#64