Die 9 laut Prüfstand als „ungeklärt" geführten sn_basis-Funktionen außerhalb der #67-Liste werden einzeln
entschieden: entweder mit einem Mock-Modus-Test versehen, oder mit einer kurzen Begründung im Docstring als
bewusst nicht getestet markiert. Am Ende steht keine dieser Funktionen mehr ohne Test und ohne Vermerk da.
Fortsetzung von #63/#65/#67, aber für Funktionen, die dort nicht erfasst wurden (Prüfstand hatte sie zum
jeweiligen Stand nicht oder die Datei war nicht in der Betroffen-Liste). Einzelbefund je Funktion:
Dateipruefer._ist_leer: über pruefe() nur mit pfad="" indirekt geprüft. Die im Docstring behaupteten
Fälle None und reiner Whitespace (" ") sind nicht getestet → echte Lücke, Test sinnvoll.
Dateipruefer._handle_leere_eingabe: alle vier Einzel-Aktionen sind über pruefe() mit je einem gesetzten
Flag abgedeckt, aber die im Docstring behauptete Priorität „leereingabe → Standard → temporär → Fehler" bei
mehreren gleichzeitig gesetzten Flags ist nirgends geprüft → echte Lücke, Test sinnvoll.
Datenschreiber._store_style_in_gpkg: laut #67 „versehentlich in #63 nicht getestet" – eigenständige
SQLite-Logik (Tabelle anlegen, alten Default-Style zurücksetzen, neuen Stil inkl. Geometriespalte
einfügen), ohne QGIS lauffähig → Test sinnvoll (deckt damit den in #67 offen gelassenen Punkt ab).
Linkpruefer._ist_url / _pruefe_url / _pruefe_dateipfad: alle Verzweigungen (URL ok/Fehler/kein
Netz, Pfad gefunden/nicht gefunden) sind bereits vollständig über pruefe() in test_linkpruefer.py
abgedeckt, nur eben nicht mit direktem Funktionsaufruf im Test – kein Zusatztest nötig, nur Vermerk.
Pruefmanager._handle_datei_existiert: alle drei Dialog-Antworten plus Nicht-QGIS-Fall sind bereits über verarbeite() in test_pruefmanager.py abgedeckt – kein Zusatztest nötig, nur Vermerk.
Pruefmanager._handle_verfahrensgebiet_layer_existiert: nur „ergänzen" und „abbrechen" sind getestet,
„entfernen" und „ersetzen" aus der aktion_map fehlen → echte Lücke, Test sinnvoll.
Pruefmanager._ask_use_or_replace_pufferlayer: bereits als toter Code mit garantiertem AttributeError
in #60 erfasst (self.pruefmanager existiert nie). Kein Test vor der Bugfix-Entscheidung in #60 sinnvoll,
nur Vermerk mit Verweis auf #60.
Abnahmekriterien
Dateipruefer._ist_leer: Test für None, Nicht-String und reinen Whitespace
Dateipruefer._handle_leere_eingabe: Test für die Priorität bei mehreren gesetzten Flags
Datenschreiber._store_style_in_gpkg: Test für Tabellenerstellung, Default-Reset und Insert
Pruefmanager._handle_verfahrensgebiet_layer_existiert: Tests für „entfernen" und „ersetzen"
Linkpruefer._ist_url / _pruefe_url / _pruefe_dateipfad, Pruefmanager._handle_datei_existiert, Pruefmanager._ask_use_or_replace_pufferlayer: Docstring-Vermerk „von Test abgesehen, weil …"
python scripts/testkatalog.py neu erzeugt und mitcommittet, „ungeklärt" für sn_basis auf 0
run_tests.py sn_basis --baseline ohne NEU ROT
QGIS-Test: nicht nötig, reine Mock-Modus-Logik ohne Qt-Widgets
Nicht Teil dieses Issues
Pruefmanager._ask_use_or_replace_pufferlayer selbst reparieren – eigenes Bug-Issue #60.
Die 32 Funktionen aus #67 (os_wrapper, qgiscore_wrapper, qgisui_wrapper, DataGrabber, pruef_ergebnis,
navigation.py, settings_tab.py, print_tab.py) – dort laufendes Issue.
Print-Bereich (print_logic.py, print_layout.py, print_layout_baufreigabe.py) – zurückgestellt bis zur
Grundüberarbeitung.
## Ziel
Die 9 laut Prüfstand als „ungeklärt" geführten sn_basis-Funktionen außerhalb der #67-Liste werden einzeln
entschieden: entweder mit einem Mock-Modus-Test versehen, oder mit einer kurzen Begründung im Docstring als
bewusst nicht getestet markiert. Am Ende steht keine dieser Funktionen mehr ohne Test und ohne Vermerk da.
## Betroffen
Plugin: sn_basis
Module/Dateien:
- `modules/Dateipruefer.py` (`_ist_leer`, `_handle_leere_eingabe`)
- `modules/Datenschreiber.py` (`_store_style_in_gpkg`)
- `modules/linkpruefer.py` (`_ist_url`, `_pruefe_url`, `_pruefe_dateipfad`)
- `modules/Pruefmanager.py` (`_handle_datei_existiert`, `_handle_verfahrensgebiet_layer_existiert`,
`_ask_use_or_replace_pufferlayer`)
Berührt Schnittstellen (`docs/architektur/schnittstellen.md`)? nein
## Fachlicher Hintergrund
Fortsetzung von #63/#65/#67, aber für Funktionen, die dort nicht erfasst wurden (Prüfstand hatte sie zum
jeweiligen Stand nicht oder die Datei war nicht in der Betroffen-Liste). Einzelbefund je Funktion:
- `Dateipruefer._ist_leer`: über `pruefe()` nur mit `pfad=""` indirekt geprüft. Die im Docstring behaupteten
Fälle `None` und reiner Whitespace (`" "`) sind nicht getestet → echte Lücke, Test sinnvoll.
- `Dateipruefer._handle_leere_eingabe`: alle vier Einzel-Aktionen sind über `pruefe()` mit je einem gesetzten
Flag abgedeckt, aber die im Docstring behauptete Priorität „leereingabe → Standard → temporär → Fehler" bei
mehreren gleichzeitig gesetzten Flags ist nirgends geprüft → echte Lücke, Test sinnvoll.
- `Datenschreiber._store_style_in_gpkg`: laut #67 „versehentlich in #63 nicht getestet" – eigenständige
SQLite-Logik (Tabelle anlegen, alten Default-Style zurücksetzen, neuen Stil inkl. Geometriespalte
einfügen), ohne QGIS lauffähig → Test sinnvoll (deckt damit den in #67 offen gelassenen Punkt ab).
- `Linkpruefer._ist_url` / `_pruefe_url` / `_pruefe_dateipfad`: alle Verzweigungen (URL ok/Fehler/kein
Netz, Pfad gefunden/nicht gefunden) sind bereits vollständig über `pruefe()` in `test_linkpruefer.py`
abgedeckt, nur eben nicht mit direktem Funktionsaufruf im Test – kein Zusatztest nötig, nur Vermerk.
- `Pruefmanager._handle_datei_existiert`: alle drei Dialog-Antworten plus Nicht-QGIS-Fall sind bereits über
`verarbeite()` in `test_pruefmanager.py` abgedeckt – kein Zusatztest nötig, nur Vermerk.
- `Pruefmanager._handle_verfahrensgebiet_layer_existiert`: nur „ergänzen" und „abbrechen" sind getestet,
„entfernen" und „ersetzen" aus der `aktion_map` fehlen → echte Lücke, Test sinnvoll.
- `Pruefmanager._ask_use_or_replace_pufferlayer`: bereits als toter Code mit garantiertem `AttributeError`
in #60 erfasst (`self.pruefmanager` existiert nie). Kein Test vor der Bugfix-Entscheidung in #60 sinnvoll,
nur Vermerk mit Verweis auf #60.
## Abnahmekriterien
- [ ] `Dateipruefer._ist_leer`: Test für `None`, Nicht-String und reinen Whitespace
- [ ] `Dateipruefer._handle_leere_eingabe`: Test für die Priorität bei mehreren gesetzten Flags
- [ ] `Datenschreiber._store_style_in_gpkg`: Test für Tabellenerstellung, Default-Reset und Insert
- [ ] `Pruefmanager._handle_verfahrensgebiet_layer_existiert`: Tests für „entfernen" und „ersetzen"
- [ ] `Linkpruefer._ist_url` / `_pruefe_url` / `_pruefe_dateipfad`, `Pruefmanager._handle_datei_existiert`,
`Pruefmanager._ask_use_or_replace_pufferlayer`: Docstring-Vermerk „von Test abgesehen, weil …"
- [ ] `python scripts/testkatalog.py` neu erzeugt und mitcommittet, „ungeklärt" für sn_basis auf 0
- [ ] `run_tests.py sn_basis --baseline` ohne NEU ROT
- [ ] QGIS-Test: nicht nötig, reine Mock-Modus-Logik ohne Qt-Widgets
## Nicht Teil dieses Issues
- `Pruefmanager._ask_use_or_replace_pufferlayer` selbst reparieren – eigenes Bug-Issue #60.
- Die 32 Funktionen aus #67 (os_wrapper, qgiscore_wrapper, qgisui_wrapper, DataGrabber, pruef_ergebnis,
navigation.py, settings_tab.py, print_tab.py) – dort laufendes Issue.
- Print-Bereich (`print_logic.py`, `print_layout.py`, `print_layout_baufreigabe.py`) – zurückgestellt bis zur
Grundüberarbeitung.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Ziel
Die 9 laut Prüfstand als „ungeklärt" geführten sn_basis-Funktionen außerhalb der #67-Liste werden einzeln
entschieden: entweder mit einem Mock-Modus-Test versehen, oder mit einer kurzen Begründung im Docstring als
bewusst nicht getestet markiert. Am Ende steht keine dieser Funktionen mehr ohne Test und ohne Vermerk da.
Betroffen
Plugin: sn_basis
Module/Dateien:
modules/Dateipruefer.py(_ist_leer,_handle_leere_eingabe)modules/Datenschreiber.py(_store_style_in_gpkg)modules/linkpruefer.py(_ist_url,_pruefe_url,_pruefe_dateipfad)modules/Pruefmanager.py(_handle_datei_existiert,_handle_verfahrensgebiet_layer_existiert,_ask_use_or_replace_pufferlayer)Berührt Schnittstellen (
docs/architektur/schnittstellen.md)? neinFachlicher Hintergrund
Fortsetzung von #63/#65/#67, aber für Funktionen, die dort nicht erfasst wurden (Prüfstand hatte sie zum
jeweiligen Stand nicht oder die Datei war nicht in der Betroffen-Liste). Einzelbefund je Funktion:
Dateipruefer._ist_leer: überpruefe()nur mitpfad=""indirekt geprüft. Die im Docstring behauptetenFälle
Noneund reiner Whitespace (" ") sind nicht getestet → echte Lücke, Test sinnvoll.Dateipruefer._handle_leere_eingabe: alle vier Einzel-Aktionen sind überpruefe()mit je einem gesetztenFlag abgedeckt, aber die im Docstring behauptete Priorität „leereingabe → Standard → temporär → Fehler" bei
mehreren gleichzeitig gesetzten Flags ist nirgends geprüft → echte Lücke, Test sinnvoll.
Datenschreiber._store_style_in_gpkg: laut #67 „versehentlich in #63 nicht getestet" – eigenständigeSQLite-Logik (Tabelle anlegen, alten Default-Style zurücksetzen, neuen Stil inkl. Geometriespalte
einfügen), ohne QGIS lauffähig → Test sinnvoll (deckt damit den in #67 offen gelassenen Punkt ab).
Linkpruefer._ist_url/_pruefe_url/_pruefe_dateipfad: alle Verzweigungen (URL ok/Fehler/keinNetz, Pfad gefunden/nicht gefunden) sind bereits vollständig über
pruefe()intest_linkpruefer.pyabgedeckt, nur eben nicht mit direktem Funktionsaufruf im Test – kein Zusatztest nötig, nur Vermerk.
Pruefmanager._handle_datei_existiert: alle drei Dialog-Antworten plus Nicht-QGIS-Fall sind bereits überverarbeite()intest_pruefmanager.pyabgedeckt – kein Zusatztest nötig, nur Vermerk.Pruefmanager._handle_verfahrensgebiet_layer_existiert: nur „ergänzen" und „abbrechen" sind getestet,„entfernen" und „ersetzen" aus der
aktion_mapfehlen → echte Lücke, Test sinnvoll.Pruefmanager._ask_use_or_replace_pufferlayer: bereits als toter Code mit garantiertemAttributeErrorin #60 erfasst (
self.pruefmanagerexistiert nie). Kein Test vor der Bugfix-Entscheidung in #60 sinnvoll,nur Vermerk mit Verweis auf #60.
Abnahmekriterien
Dateipruefer._ist_leer: Test fürNone, Nicht-String und reinen WhitespaceDateipruefer._handle_leere_eingabe: Test für die Priorität bei mehreren gesetzten FlagsDatenschreiber._store_style_in_gpkg: Test für Tabellenerstellung, Default-Reset und InsertPruefmanager._handle_verfahrensgebiet_layer_existiert: Tests für „entfernen" und „ersetzen"Linkpruefer._ist_url/_pruefe_url/_pruefe_dateipfad,Pruefmanager._handle_datei_existiert,Pruefmanager._ask_use_or_replace_pufferlayer: Docstring-Vermerk „von Test abgesehen, weil …"python scripts/testkatalog.pyneu erzeugt und mitcommittet, „ungeklärt" für sn_basis auf 0run_tests.py sn_basis --baselineohne NEU ROTNicht Teil dieses Issues
Pruefmanager._ask_use_or_replace_pufferlayerselbst reparieren – eigenes Bug-Issue #60.navigation.py, settings_tab.py, print_tab.py) – dort laufendes Issue.
print_logic.py,print_layout.py,print_layout_baufreigabe.py) – zurückgestellt bis zurGrundüberarbeitung.