Test-Audit sn_basis fortgesetzt: landkreise.py und LayerLoader.py fachlich geprüft (#76)
38 Testfälle fachlich geprüft und markiert: test_landkreise.py komplett (6, inkl. 4 neuer Tests) und test_layerloader.py komplett (32, inkl. 7 neuer Tests). Dabei gefunden und in Plugin_SN_Basis als Issues vorbereitet (Absenden durch den Menschen): #80 (REST-Link ohne Layer-Index lädt still Layer 0), #81 (unbekannter Provider fällt still auf ogr zurück), #82 (Datenabruf und LayerLoader bauen aus demselben REST-Link widersprüchliche URLs), #83 (filter_by_extent/filter_by_layer reichen ungültige Layer still durch). Testkatalog neu erzeugt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -331,6 +331,158 @@
|
|||||||
"datum": "2026-09-17",
|
"datum": "2026-09-17",
|
||||||
"hash": "14f73fb0a974"
|
"hash": "14f73fb0a974"
|
||||||
},
|
},
|
||||||
|
"sn_basis.tests.test_landkreise.AlleLandkreiseSentinelTests.test_alle_landkreise_sentinel_kollidiert_nicht_mit_echter_kennzahl": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "3904d6ac7626"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_landkreise.LadeLandkreiseTests.test_alle_kennzahlen_kommen_genau_einmal_vor": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "fca83f397af2"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_landkreise.LadeLandkreiseTests.test_fehlende_datei_liefert_leere_liste": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "247c9b9bc02e"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_landkreise.LadeLandkreiseTests.test_laedt_die_echte_landkreisliste_nicht_leer": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "5daef82a286e"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_landkreise.LadeLandkreiseTests.test_ungueltiges_json_liefert_leere_liste": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "29c14c5d2401"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_landkreise.LandkreislisteVollstaendigkeitTests.test_landkreisliste_enthaelt_alle_13_saechsischen_gebietskoerperschaften": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "6081fa0fbbd1"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.AddToProjectTests.test_gueltiger_layer_wird_dem_projekt_hinzugefuegt": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "7c8ed62e7051"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.AddToProjectTests.test_none_layer_wird_nicht_hinzugefuegt": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "db489f5f485f"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.AddToProjectTests.test_ungueltiger_layer_wird_nicht_hinzugefuegt": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "1261f9711940"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.CreateLayerTests.test_ausnahme_beim_erstellen_wird_abgefangen": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "12cd21f33e57"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.CreateLayerTests.test_ogr_provider_nutzt_link_direkt": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "1910e68956dd"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.CreateLayerTests.test_rest_featureserver_ergaenzt_layer_index": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "776f68881c59"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.CreateLayerTests.test_rest_mit_url_praefix_wird_nicht_doppelt_gesetzt": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "25d8a8ad0d5a"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.CreateLayerTests.test_rest_ohne_featureserver_endung_bleibt_unveraendert": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "fc7415b43710"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.CreateLayerTests.test_unbekannter_provider_faellt_auf_ogr_zurueck": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "6bb5f7ab89e3"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.CreateLayerTests.test_ungueltiger_layer_meldet_layer_nicht_verfuegbar": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "feabb435d115"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.CreateLayerTests.test_wfs_baut_uri_ohne_getfeature_parameter": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "92bb8d53e711"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.CreateLayerTests.test_wfs_ergaenzt_service_und_version_defaults": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "81ecbf43a140"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.CreateLayerTests.test_wfs_erkennt_typename_in_grossschreibung": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "2898b56c4e1c"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.CreateLayerTests.test_wfs_mit_url_praefix_wird_nicht_doppelt_gesetzt": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "5385bc25e511"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.CreateLayerTests.test_wms_baut_url_praefix_und_nutzt_rasterlayer": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "407c1a9ba825"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.FilterByExtentTests.test_abbruch_liefert_none_und_meldet_needs_user_action": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "839e5055e5eb"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.FilterByExtentTests.test_erfolgreicher_filter_liefert_neuen_layer_mit_features": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "d42dbc209f8d"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.FilterByExtentTests.test_falscher_layertyp_wird_unveraendert_zurueckgegeben": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "571bcc79cd34"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.FilterByExtentTests.test_keine_treffer_liefert_none": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "ead34605a071"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.FilterByExtentTests.test_ohne_extent_wird_layer_unveraendert_zurueckgegeben": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "6df5b38eda97"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.FilterByExtentTests.test_ungueltiger_layer_wird_unveraendert_zurueckgegeben": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "f98f92c748d3"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.FilterByLayerTests.test_erfolgreicher_geometriefilter_liefert_neuen_layer": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "8bc46d7cc336"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.FilterByLayerTests.test_filterlayer_ohne_features_liefert_none": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "a8963f651828"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.FilterByLayerTests.test_keine_ueberschneidung_liefert_none": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "4d033b3df276"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.FilterByLayerTests.test_ungueltiger_layer_oder_filterlayer_wird_unveraendert_zurueckgegeben": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "29d5ae987f69"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.TransformExtentTests.test_ausnahme_bei_der_extent_transformation_liefert_extent_unveraendert": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "f11e2c936436"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.TransformExtentTests.test_gleiche_crs_liefert_extent_unveraendert": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "7f5d3da32cfc"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.TransformExtentTests.test_unterschiedliche_crs_nutzt_coordinate_transform": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "1f99cdecd25a"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.TransformGeometryTests.test_ausnahme_bei_der_transformation_liefert_geometrie_unveraendert": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "6cfb8b4dbd06"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.TransformGeometryTests.test_fehlender_layer_liefert_geometrie_unveraendert": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "9577d78fb696"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.TransformGeometryTests.test_gleiche_crs_liefert_geometrie_unveraendert": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "31d753a90fb5"
|
||||||
|
},
|
||||||
|
"sn_basis.tests.test_layerloader.TransformGeometryTests.test_unterschiedliche_crs_klont_und_transformiert_geometrie": {
|
||||||
|
"datum": "2026-09-22",
|
||||||
|
"hash": "ec11affdda72"
|
||||||
|
},
|
||||||
"sn_basis.tests.test_layerpruefer.TestLayerpruefer.test_datenquelle_unerwartet": {
|
"sn_basis.tests.test_layerpruefer.TestLayerpruefer.test_datenquelle_unerwartet": {
|
||||||
"datum": "2026-09-17",
|
"datum": "2026-09-17",
|
||||||
"hash": "4b838528f751"
|
"hash": "4b838528f751"
|
||||||
|
|||||||
+60
-34
File diff suppressed because one or more lines are too long
+52
-39
@@ -8,21 +8,21 @@ für die fachliche Frage, ob die Abdeckung sinnvoll ist. Die Angaben stammen aus
|
|||||||
selbst (Docstrings) und aus der Testbaseline.
|
selbst (Docstrings) und aus der Testbaseline.
|
||||||
|
|
||||||
Stand der Baseline: `docs/status/testbaseline.json` (SHA-256 `aeabc946a7f3`)
|
Stand der Baseline: `docs/status/testbaseline.json` (SHA-256 `aeabc946a7f3`)
|
||||||
Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `ab63e2f916cd`)
|
Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `2f7e27c76ee7`)
|
||||||
|
|
||||||
Gesamt: 3 Pakete, 49 Testdateien, 581 Testfälle – 538 grün, 35 rot (Baseline), 8 übersprungen.
|
Gesamt: 3 Pakete, 49 Testdateien, 592 Testfälle – 549 grün, 35 rot (Baseline), 8 übersprungen.
|
||||||
Mit Beschreibung (Docstring): 436 von 581 (75 %).
|
Mit Beschreibung (Docstring): 447 von 592 (76 %).
|
||||||
Fachlich geprüft: 122 von 581 (21 %) aktuell, 0 veraltet seit Codeänderung, 459 nie geprüft.
|
Fachlich geprüft: 160 von 592 (27 %) aktuell, 0 veraltet seit Codeänderung, 432 nie geprüft.
|
||||||
Strukturelle Lücken (heuristisch, Namensabgleich): 145 von 413 (35 %) Funktionen/Methoden ohne erkennbaren Testbezug – Abschnitt „Ungetestete Funktionen“.
|
Strukturelle Lücken (heuristisch, Namensabgleich): 145 von 413 (35 %) Funktionen/Methoden ohne erkennbaren Testbezug – Abschnitt „Ungetestete Funktionen“.
|
||||||
|
|
||||||
## Zusammenfassung
|
## Zusammenfassung
|
||||||
|
|
||||||
| Paket | Testdateien | Testfälle | grün | rot (Baseline) | übersprungen | mit Beschreibung | fachlich geprüft | ohne Testbezug |
|
| Paket | Testdateien | Testfälle | grün | rot (Baseline) | übersprungen | mit Beschreibung | fachlich geprüft | ohne Testbezug |
|
||||||
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
||||||
| `sn_basis` | 32 | 329 | 329 | 0 | 0 | 329 von 329 (100 %) | 122 von 329 (37 %) | 72 von 229 (31 %) |
|
| `sn_basis` | 32 | 340 | 340 | 0 | 0 | 340 von 340 (100 %) | 160 von 340 (47 %) | 72 von 229 (31 %) |
|
||||||
| `sn_verfahrensgebiet` | 12 | 208 | 166 | 34 | 8 | 106 von 208 (51 %) | 0 von 208 (0 %) | 34 von 104 (33 %) |
|
| `sn_verfahrensgebiet` | 12 | 208 | 166 | 34 | 8 | 106 von 208 (51 %) | 0 von 208 (0 %) | 34 von 104 (33 %) |
|
||||||
| `sn_plan41` | 5 | 44 | 43 | 1 | 0 | 1 von 44 (2 %) | 0 von 44 (0 %) | 39 von 80 (49 %) |
|
| `sn_plan41` | 5 | 44 | 43 | 1 | 0 | 1 von 44 (2 %) | 0 von 44 (0 %) | 39 von 80 (49 %) |
|
||||||
| **Summe** | **49** | **581** | **538** | **35** | **8** | **436 von 581 (75 %)** | **122 von 581 (21 %)** | **145 von 413 (35 %)** |
|
| **Summe** | **49** | **592** | **549** | **35** | **8** | **447 von 592 (76 %)** | **160 von 592 (27 %)** | **145 von 413 (35 %)** |
|
||||||
|
|
||||||
### Legende
|
### Legende
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ Strukturelle Lücken (heuristisch, Namensabgleich): 145 von 413 (35 %) Funktione
|
|||||||
|
|
||||||
## Paket `sn_basis`
|
## Paket `sn_basis`
|
||||||
|
|
||||||
Plattform-Plugin, Ordner `Plugin_SN_Basis` – 32 Testdateien mit 329 Testfällen (329 grün, 0 rot, 0 übersprungen).
|
Plattform-Plugin, Ordner `Plugin_SN_Basis` – 32 Testdateien mit 340 Testfällen (340 grün, 0 rot, 0 übersprungen).
|
||||||
|
|
||||||
### `Plugin_SN_Basis/tests/test_base_dockwidget.py`
|
### `Plugin_SN_Basis/tests/test_base_dockwidget.py`
|
||||||
|
|
||||||
@@ -237,12 +237,18 @@ Worum es in der Datei geht: Tests für sn_basis/functions/landkreise.py::_lade_l
|
|||||||
|
|
||||||
Testgruppen:
|
Testgruppen:
|
||||||
|
|
||||||
- `LadeLandkreiseTests` (2 Testfälle): — (Docstring fehlt)
|
- `LadeLandkreiseTests` (4 Testfälle): — (Docstring fehlt)
|
||||||
|
- `LandkreislisteVollstaendigkeitTests` (1 Testfälle): — (Docstring fehlt)
|
||||||
|
- `AlleLandkreiseSentinelTests` (1 Testfälle): — (Docstring fehlt)
|
||||||
|
|
||||||
| Testfall | prüft | Status | geprüft |
|
| Testfall | prüft | Status | geprüft |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| `LadeLandkreiseTests.test_laedt_die_echte_landkreisliste_nicht_leer` | Prüft, dass _lade_landkreise die echte landkreise.json als nicht-leere Liste von (Kennzahl, Name)-Tupeln liefert. | grün | nie geprüft |
|
| `LadeLandkreiseTests.test_laedt_die_echte_landkreisliste_nicht_leer` | Prüft, dass _lade_landkreise die echte landkreise.json als nicht-leere Liste von (Kennzahl, Name)-Tupeln liefert. | grün | geprüft am 2026-09-22 |
|
||||||
| `LadeLandkreiseTests.test_fehlende_datei_liefert_leere_liste` | Prüft, dass eine nicht lesbare Datenquelle eine leere Liste liefert, statt eine Ausnahme zu werfen. | grün | nie geprüft |
|
| `LadeLandkreiseTests.test_fehlende_datei_liefert_leere_liste` | Prüft, dass eine nicht lesbare Datenquelle eine leere Liste liefert, statt eine Ausnahme zu werfen. | grün | geprüft am 2026-09-22 |
|
||||||
|
| `LadeLandkreiseTests.test_ungueltiges_json_liefert_leere_liste` | Prüft, dass eine Datei mit syntaktisch ungültigem JSON eine leere Liste liefert, statt eine Ausnahme zu werfen. | grün | geprüft am 2026-09-22 |
|
||||||
|
| `LadeLandkreiseTests.test_alle_kennzahlen_kommen_genau_einmal_vor` | Prüft, dass jede Landkreiskennzahl in der geladenen Landkreisliste genau einmal vorkommt. | grün | geprüft am 2026-09-22 |
|
||||||
|
| `LandkreislisteVollstaendigkeitTests.test_landkreisliste_enthaelt_alle_13_saechsischen_gebietskoerperschaften` | Prüft, dass die geladene Landkreisliste genau die 13 amtlichen sächsischen Kreisschlüssel und Namen enthält. | grün | geprüft am 2026-09-22 |
|
||||||
|
| `AlleLandkreiseSentinelTests.test_alle_landkreise_sentinel_kollidiert_nicht_mit_echter_kennzahl` | Prüft, dass die Sentinel-Kennzahl ALLE_LANDKREISE mit keiner echten Landkreiskennzahl übereinstimmt. | grün | geprüft am 2026-09-22 |
|
||||||
|
|
||||||
### `Plugin_SN_Basis/tests/test_layerloader.py`
|
### `Plugin_SN_Basis/tests/test_layerloader.py`
|
||||||
|
|
||||||
@@ -250,40 +256,47 @@ Worum es in der Datei geht: Tests für sn_basis/modules/LayerLoader.py (Layer er
|
|||||||
|
|
||||||
Testgruppen:
|
Testgruppen:
|
||||||
|
|
||||||
- `CreateLayerTests` (7 Testfälle): — (Docstring fehlt)
|
- `CreateLayerTests` (12 Testfälle): — (Docstring fehlt)
|
||||||
- `TransformGeometryTests` (3 Testfälle): — (Docstring fehlt)
|
- `TransformGeometryTests` (4 Testfälle): — (Docstring fehlt)
|
||||||
- `TransformExtentTests` (2 Testfälle): — (Docstring fehlt)
|
- `TransformExtentTests` (3 Testfälle): — (Docstring fehlt)
|
||||||
- `FilterByExtentTests` (6 Testfälle): — (Docstring fehlt)
|
- `FilterByExtentTests` (6 Testfälle): — (Docstring fehlt)
|
||||||
- `FilterByLayerTests` (4 Testfälle): — (Docstring fehlt)
|
- `FilterByLayerTests` (4 Testfälle): — (Docstring fehlt)
|
||||||
- `AddToProjectTests` (3 Testfälle): — (Docstring fehlt)
|
- `AddToProjectTests` (3 Testfälle): — (Docstring fehlt)
|
||||||
|
|
||||||
| Testfall | prüft | Status | geprüft |
|
| Testfall | prüft | Status | geprüft |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| `CreateLayerTests.test_wfs_baut_uri_ohne_getfeature_parameter` | Prüft, dass für WFS die GetFeature-spezifischen Parameter aus der URI entfernt werden. | grün | nie geprüft |
|
| `CreateLayerTests.test_wfs_baut_uri_ohne_getfeature_parameter` | Prüft, dass für WFS die GetFeature-spezifischen Parameter aus der URI entfernt werden. | grün | geprüft am 2026-09-22 |
|
||||||
| `CreateLayerTests.test_wfs_mit_url_praefix_wird_nicht_doppelt_gesetzt` | Prüft, dass ein bereits vorhandenes 'url='-Präfix im WFS-Link nicht verdoppelt wird. | grün | nie geprüft |
|
| `CreateLayerTests.test_wfs_mit_url_praefix_wird_nicht_doppelt_gesetzt` | Prüft, dass ein bereits vorhandenes 'url='-Präfix im WFS-Link nicht verdoppelt wird. | grün | geprüft am 2026-09-22 |
|
||||||
| `CreateLayerTests.test_wms_baut_url_praefix_und_nutzt_rasterlayer` | Prüft, dass WMS-Layer über QgsRasterLayer mit 'url='-Präfix erzeugt werden. | grün | nie geprüft |
|
| `CreateLayerTests.test_wms_baut_url_praefix_und_nutzt_rasterlayer` | Prüft, dass WMS-Layer über QgsRasterLayer mit 'url='-Präfix erzeugt werden. | grün | geprüft am 2026-09-22 |
|
||||||
| `CreateLayerTests.test_rest_featureserver_ergaenzt_layer_index` | Prüft, dass ein REST-Link auf '.../FeatureServer' automatisch um '/0' ergänzt wird. | grün | nie geprüft |
|
| `CreateLayerTests.test_rest_featureserver_ergaenzt_layer_index` | Prüft, dass ein REST-Link auf '.../FeatureServer' automatisch um '/0' ergänzt wird. | grün | geprüft am 2026-09-22 |
|
||||||
| `CreateLayerTests.test_ogr_provider_nutzt_link_direkt` | Prüft, dass ein OGR-Provider den Link unverändert an QgsVectorLayer übergibt. | grün | nie geprüft |
|
| `CreateLayerTests.test_ogr_provider_nutzt_link_direkt` | Prüft, dass ein OGR-Provider den Link unverändert an QgsVectorLayer übergibt. | grün | geprüft am 2026-09-22 |
|
||||||
| `CreateLayerTests.test_ungueltiger_layer_meldet_layer_nicht_verfuegbar` | Prüft, dass ein ungültig erzeugter Layer als 'layer_nicht_verfuegbar' gemeldet wird und None liefert. | grün | nie geprüft |
|
| `CreateLayerTests.test_ungueltiger_layer_meldet_layer_nicht_verfuegbar` | Prüft, dass ein ungültig erzeugter Layer als 'layer_nicht_verfuegbar' gemeldet wird und None liefert. | grün | geprüft am 2026-09-22 |
|
||||||
| `CreateLayerTests.test_ausnahme_beim_erstellen_wird_abgefangen` | Prüft, dass eine Ausnahme beim Layer-Erstellen abgefangen und als Fehlerergebnis gemeldet wird. | grün | nie geprüft |
|
| `CreateLayerTests.test_ausnahme_beim_erstellen_wird_abgefangen` | Prüft, dass eine Ausnahme beim Layer-Erstellen abgefangen und als Fehlerergebnis gemeldet wird. | grün | geprüft am 2026-09-22 |
|
||||||
| `TransformGeometryTests.test_fehlender_layer_liefert_geometrie_unveraendert` | Prüft, dass ohne Quell- oder Ziel-Layer die Geometrie unverändert zurückgegeben wird. | grün | nie geprüft |
|
| `CreateLayerTests.test_unbekannter_provider_faellt_auf_ogr_zurueck` | Prüft, dass ein unbekannter Provider wie 'ogr' behandelt wird und den Link unverändert übergibt. | grün | geprüft am 2026-09-22 |
|
||||||
| `TransformGeometryTests.test_gleiche_crs_liefert_geometrie_unveraendert` | Prüft, dass bei identischem CRS von Quelle und Ziel keine Transformation stattfindet. | grün | nie geprüft |
|
| `CreateLayerTests.test_rest_ohne_featureserver_endung_bleibt_unveraendert` | Prüft, dass ein REST-Link ohne 'FeatureServer'-Endung nicht um '/0' ergänzt wird. | grün | geprüft am 2026-09-22 |
|
||||||
| `TransformGeometryTests.test_unterschiedliche_crs_klont_und_transformiert_geometrie` | Prüft, dass bei unterschiedlichem CRS eine geklonte, transformierte Geometrie geliefert wird. | grün | nie geprüft |
|
| `CreateLayerTests.test_rest_mit_url_praefix_wird_nicht_doppelt_gesetzt` | Prüft, dass ein bereits vorhandenes 'url='-Präfix im REST-Link nicht verdoppelt wird. | grün | geprüft am 2026-09-22 |
|
||||||
| `TransformExtentTests.test_gleiche_crs_liefert_extent_unveraendert` | Prüft, dass bei identischem CRS von Quelle und Ziel der Extent unverändert bleibt. | grün | nie geprüft |
|
| `CreateLayerTests.test_wfs_erkennt_typename_in_grossschreibung` | Prüft, dass für WFS auch der Parameter 'TYPENAME' (Großschreibung) als Layername erkannt wird. | grün | geprüft am 2026-09-22 |
|
||||||
| `TransformExtentTests.test_unterschiedliche_crs_nutzt_coordinate_transform` | Prüft, dass bei unterschiedlichem CRS der Extent über QgsCoordinateTransform umgerechnet wird. | grün | nie geprüft |
|
| `CreateLayerTests.test_wfs_ergaenzt_service_und_version_defaults` | Prüft, dass für WFS ohne 'service'/'version'-Parameter die Defaults 'WFS'/'2.0.0' ergänzt werden. | grün | geprüft am 2026-09-22 |
|
||||||
| `FilterByExtentTests.test_ungueltiger_layer_wird_unveraendert_zurueckgegeben` | Prüft, dass ein ungültiger Layer von filter_by_extent unverändert zurückgegeben wird. | grün | nie geprüft |
|
| `TransformGeometryTests.test_fehlender_layer_liefert_geometrie_unveraendert` | Prüft, dass ohne Quell- oder Ziel-Layer die Geometrie unverändert zurückgegeben wird. | grün | geprüft am 2026-09-22 |
|
||||||
| `FilterByExtentTests.test_ohne_extent_wird_layer_unveraendert_zurueckgegeben` | Prüft, dass ohne Extent (None) der Layer unverändert zurückgegeben wird. | grün | nie geprüft |
|
| `TransformGeometryTests.test_gleiche_crs_liefert_geometrie_unveraendert` | Prüft, dass bei identischem CRS von Quelle und Ziel keine Transformation stattfindet. | grün | geprüft am 2026-09-22 |
|
||||||
| `FilterByExtentTests.test_falscher_layertyp_wird_unveraendert_zurueckgegeben` | Prüft, dass ein Nicht-Vektor-Layer (z. B. Rasterlayer) unverändert zurückgegeben wird. | grün | nie geprüft |
|
| `TransformGeometryTests.test_unterschiedliche_crs_klont_und_transformiert_geometrie` | Prüft, dass bei unterschiedlichem CRS eine geklonte, transformierte Geometrie geliefert wird. | grün | geprüft am 2026-09-22 |
|
||||||
| `FilterByExtentTests.test_keine_treffer_liefert_none` | Prüft, dass ein Raumfilter ohne Treffer None statt eines leeren Layers liefert. | grün | nie geprüft |
|
| `TransformGeometryTests.test_ausnahme_bei_der_transformation_liefert_geometrie_unveraendert` | Prüft, dass eine Ausnahme während der CRS-Transformation abgefangen wird und die ursprüngliche Geometrie unverändert liefert. | grün | geprüft am 2026-09-22 |
|
||||||
| `FilterByExtentTests.test_abbruch_liefert_none_und_meldet_needs_user_action` | Prüft, dass ein Abbruch während des Raumfilters None liefert und gemeldet wird. | grün | nie geprüft |
|
| `TransformExtentTests.test_gleiche_crs_liefert_extent_unveraendert` | Prüft, dass bei identischem CRS von Quelle und Ziel der Extent unverändert bleibt. | grün | geprüft am 2026-09-22 |
|
||||||
| `FilterByExtentTests.test_erfolgreicher_filter_liefert_neuen_layer_mit_features` | Prüft, dass ein erfolgreicher BBOX-Filter einen neuen Speicherlayer mit den gefundenen Features liefert. | grün | nie geprüft |
|
| `TransformExtentTests.test_unterschiedliche_crs_nutzt_coordinate_transform` | Prüft, dass bei unterschiedlichem CRS der Extent über QgsCoordinateTransform umgerechnet wird. | grün | geprüft am 2026-09-22 |
|
||||||
| `FilterByLayerTests.test_ungueltiger_layer_oder_filterlayer_wird_unveraendert_zurueckgegeben` | Prüft, dass ein ungültiger Haupt- oder Filter-Layer unverändert zurückgegeben wird. | grün | nie geprüft |
|
| `TransformExtentTests.test_ausnahme_bei_der_extent_transformation_liefert_extent_unveraendert` | Prüft, dass eine Ausnahme während der Extent-Transformation abgefangen wird und den ursprünglichen Extent unverändert liefert. | grün | geprüft am 2026-09-22 |
|
||||||
| `FilterByLayerTests.test_filterlayer_ohne_features_liefert_none` | Prüft, dass ein Filter-Layer ohne Features (leere Vereinigungsgeometrie) None liefert. | grün | nie geprüft |
|
| `FilterByExtentTests.test_ungueltiger_layer_wird_unveraendert_zurueckgegeben` | Prüft, dass ein ungültiger Layer von filter_by_extent unverändert zurückgegeben wird. | grün | geprüft am 2026-09-22 |
|
||||||
| `FilterByLayerTests.test_erfolgreicher_geometriefilter_liefert_neuen_layer` | Prüft, dass ein erfolgreicher Geometriefilter einen neuen Speicherlayer mit den passenden Features liefert. | grün | nie geprüft |
|
| `FilterByExtentTests.test_ohne_extent_wird_layer_unveraendert_zurueckgegeben` | Prüft, dass ohne Extent (None) der Layer unverändert zurückgegeben wird. | grün | geprüft am 2026-09-22 |
|
||||||
| `FilterByLayerTests.test_keine_ueberschneidung_liefert_none` | Prüft, dass ohne überschneidende Features None statt eines leeren Layers geliefert wird. | grün | nie geprüft |
|
| `FilterByExtentTests.test_falscher_layertyp_wird_unveraendert_zurueckgegeben` | Prüft, dass ein Nicht-Vektor-Layer (z. B. Rasterlayer) unverändert zurückgegeben wird. | grün | geprüft am 2026-09-22 |
|
||||||
| `AddToProjectTests.test_gueltiger_layer_wird_dem_projekt_hinzugefuegt` | Prüft, dass ein gültiger Layer über QgsProject.instance().addMapLayer hinzugefügt wird. | grün | nie geprüft |
|
| `FilterByExtentTests.test_keine_treffer_liefert_none` | Prüft, dass ein Raumfilter ohne Treffer None statt eines leeren Layers liefert. | grün | geprüft am 2026-09-22 |
|
||||||
| `AddToProjectTests.test_ungueltiger_layer_wird_nicht_hinzugefuegt` | Prüft, dass ein ungültiger Layer nicht ans Projekt übergeben wird. | grün | nie geprüft |
|
| `FilterByExtentTests.test_abbruch_liefert_none_und_meldet_needs_user_action` | Prüft, dass ein Abbruch während des Raumfilters None liefert und gemeldet wird. | grün | geprüft am 2026-09-22 |
|
||||||
| `AddToProjectTests.test_none_layer_wird_nicht_hinzugefuegt` | Prüft, dass ein fehlender Layer (None) nicht ans Projekt übergeben wird. | grün | nie geprüft |
|
| `FilterByExtentTests.test_erfolgreicher_filter_liefert_neuen_layer_mit_features` | Prüft, dass ein erfolgreicher BBOX-Filter einen neuen Speicherlayer mit den gefundenen Features liefert. | grün | geprüft am 2026-09-22 |
|
||||||
|
| `FilterByLayerTests.test_ungueltiger_layer_oder_filterlayer_wird_unveraendert_zurueckgegeben` | Prüft, dass ein ungültiger Haupt- oder Filter-Layer unverändert zurückgegeben wird. | grün | geprüft am 2026-09-22 |
|
||||||
|
| `FilterByLayerTests.test_filterlayer_ohne_features_liefert_none` | Prüft, dass ein Filter-Layer ohne Features (leere Vereinigungsgeometrie) None liefert. | grün | geprüft am 2026-09-22 |
|
||||||
|
| `FilterByLayerTests.test_erfolgreicher_geometriefilter_liefert_neuen_layer` | Prüft, dass ein erfolgreicher Geometriefilter einen neuen Speicherlayer mit den passenden Features liefert. | grün | geprüft am 2026-09-22 |
|
||||||
|
| `FilterByLayerTests.test_keine_ueberschneidung_liefert_none` | Prüft, dass ohne überschneidende Features None statt eines leeren Layers geliefert wird. | grün | geprüft am 2026-09-22 |
|
||||||
|
| `AddToProjectTests.test_gueltiger_layer_wird_dem_projekt_hinzugefuegt` | Prüft, dass ein gültiger Layer über QgsProject.instance().addMapLayer hinzugefügt wird. | grün | geprüft am 2026-09-22 |
|
||||||
|
| `AddToProjectTests.test_ungueltiger_layer_wird_nicht_hinzugefuegt` | Prüft, dass ein ungültiger Layer nicht ans Projekt übergeben wird. | grün | geprüft am 2026-09-22 |
|
||||||
|
| `AddToProjectTests.test_none_layer_wird_nicht_hinzugefuegt` | Prüft, dass ein fehlender Layer (None) nicht ans Projekt übergeben wird. | grün | geprüft am 2026-09-22 |
|
||||||
|
|
||||||
### `Plugin_SN_Basis/tests/test_layerpruefer.py`
|
### `Plugin_SN_Basis/tests/test_layerpruefer.py`
|
||||||
|
|
||||||
@@ -1249,7 +1262,7 @@ Arbeitsliste: Diese Testfälle haben keinen Docstring; was sie fachlich prüfen,
|
|||||||
aus dem Quelltext erschließen. Jeder Eintrag braucht eine einzeilige Beschreibung im Testfall,
|
aus dem Quelltext erschließen. Jeder Eintrag braucht eine einzeilige Beschreibung im Testfall,
|
||||||
dann verschwindet er hier von selbst.
|
dann verschwindet er hier von selbst.
|
||||||
|
|
||||||
### `sn_basis` – 0 von 329 Testfällen ohne Beschreibung
|
### `sn_basis` – 0 von 340 Testfällen ohne Beschreibung
|
||||||
|
|
||||||
Keine Lücken.
|
Keine Lücken.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user