| `modules/basemap_kacheln.py` | 192 | Kacheln des Basemap-Layers kachelweise über `selectByGeometry` auswerten, Renderer-Styles lesen, Zoomstufen wie der QGIS-Renderer |
@@ -139,8 +140,8 @@ Dient als **minimales Muster** für ein neues Fachplugin (Skill `sn-neues-fachpl
classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;</pre></div><tableclass="test-table"><thead><tr><th>Testfall</th><th>prüft</th><th>Status</th></tr></thead><tbody><tr><tdclass="mono">IsCaseSensitiveFsTests<br><spanclass="testname">test_windows_ist_nicht_case_sensitiv</span></td><td>Prüft, dass Windows als nicht case-sensitives Dateisystem gilt.</td><td><spanclass="pill pill-ok">grün</span></td></tr><tr><tdclass="mono">IsCaseSensitiveFsTests<br><spanclass="testname">test_macos_ist_nicht_case_sensitiv</span></td><td>Prüft, dass macOS als nicht case-sensitives Dateisystem gilt.</td><td><spanclass="pill pill-ok">grün</span></td></tr><tr><tdclass="mono">IsCaseSensitiveFsTests<br><spanclass="testname">test_linux_ist_case_sensitiv</span></td><td>Prüft, dass Linux als case-sensitives Dateisystem gilt.</td><td><spanclass="pill pill-ok">grün</span></td></tr></tbody></table></div></article><articleclass="filecard"data-search="plugin_sn_basis/tests/test_print_layout.py testprintlayout test_create_legend_item_links_map_and_enables_map_filtering testprintlayout test_create_legend_item_does_not_copy_project_layers_into_legend_model testprintlayout test_configure_legend_size_uses_content_adaptive_size testprintlayout test_configure_hauptkarte_grids_uses_wrapper_constants testprintlayout test_create_single_page_layout_keeps_legend_linked_to_hauptkarte_and_theme"data-hasred="0"data-hasskip="0"data-nodoc="0"><buttonclass="card-toggle"data-target="plugin-sn-basis-tests-test-print-layout-py"aria-expanded="false"><spanclass="card-path mono">Plugin_SN_Basis/tests/test_print_layout.py</span><spanclass="card-meta"><spanclass="count-total">5 Testfälle</span><spanclass="cpill cpill-ok">5</span><spanclass="docbadge"title="Anteil mit Docstring">100% beschrieben</span><spanclass="chev"aria-hidden="true">▾</span></span></button><divclass="card-body"id="body-plugin-sn-basis-tests-test-print-layout-py"><pclass="filedesc">— (Docstring fehlt)</p><divclass="gchips"><spanclass="gchip"title="">TestPrintLayout <b>5</b></span></div><divclass="diagram-wrap"><preclass="mermaid">flowchart TD
classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;</pre></div><tableclass="test-table"><thead><tr><th>Testfall</th><th>prüft</th><th>Status</th></tr></thead><tbody><tr><tdclass="mono">IsCaseSensitiveFsTests<br><spanclass="testname">test_windows_ist_nicht_case_sensitiv</span></td><td>Prüft, dass Windows als nicht case-sensitives Dateisystem gilt.</td><td><spanclass="pill pill-ok">grün</span></td></tr><tr><tdclass="mono">IsCaseSensitiveFsTests<br><spanclass="testname">test_macos_ist_nicht_case_sensitiv</span></td><td>Prüft, dass macOS als nicht case-sensitives Dateisystem gilt.</td><td><spanclass="pill pill-ok">grün</span></td></tr><tr><tdclass="mono">IsCaseSensitiveFsTests<br><spanclass="testname">test_linux_ist_case_sensitiv</span></td><td>Prüft, dass Linux als case-sensitives Dateisystem gilt.</td><td><spanclass="pill pill-ok">grün</span></td></tr></tbody></table></div></article><articleclass="filecard"data-search="plugin_sn_basis/tests/test_print_kartenrand.py testberechneanordnung test_passt_einspaltig_nichts_aendert_sich testberechneanordnung test_mehr_spalten_und_breiterer_rand testberechneanordnung test_seite_wird_hoeher_wenn_auch_drei_spalten_nicht_reichen testberechneanordnung test_seite_wird_nie_kleiner testberechneanordnung test_ohne_legenden_nur_kartenschild testordnekartenrandan test_seite_hoeher_und_kartenschild_verschoben testordnekartenrandan test_passt_nichts_wird_verschoben testordnekartenrandan test_ohne_karte_keine_anordnung testanbindungprintlayout test_vorlage_ordnet_kartenrand_an testanbindungprintlayout test_fehler_bei_der_anordnung_verhindert_die_vorlage_nicht"data-hasred="0"data-hasskip="0"data-nodoc="0"><buttonclass="card-toggle"data-target="plugin-sn-basis-tests-test-print-kartenrand-py"aria-expanded="false"><spanclass="card-path mono">Plugin_SN_Basis/tests/test_print_kartenrand.py</span><spanclass="card-meta"><spanclass="count-total">10 Testfälle</span><spanclass="cpill cpill-ok">10</span><spanclass="docbadge"title="Anteil mit Docstring">100% beschrieben</span><spanclass="chev"aria-hidden="true">▾</span></span></button><divclass="card-body"id="body-plugin-sn-basis-tests-test-print-kartenrand-py"><pclass="filedesc">Tests für modules/print_kartenrand.py – Anordnung des Kartenrands neben der Karte (Basis #93).</p><divclass="gchips"><spanclass="gchip"title="">TestBerechneAnordnung <b>5</b></span><spanclass="gchip"title="">TestOrdneKartenrandAn <b>3</b></span><spanclass="gchip"title="">TestAnbindungPrintLayout <b>2</b></span></div><divclass="diagram-wrap"><preclass="mermaid">flowchart TD
classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;</pre></div><tableclass="test-table"><thead><tr><th>Testfall</th><th>prüft</th><th>Status</th></tr></thead><tbody><tr><tdclass="mono">TestBerechneAnordnung<br><spanclass="testname">test_passt_einspaltig_nichts_aendert_sich</span></td><td>Prüft, dass bei genug Platz neben der Karte einspaltig angeordnet wird und Seite und Kartenschild bleiben.</td><td><spanclass="pill pill-ok">grün</span></td></tr><tr><tdclass="mono">TestBerechneAnordnung<br><spanclass="testname">test_mehr_spalten_und_breiterer_rand</span></td><td>Prüft, dass bei zu hohen Legenden die kleinste passende Spaltenzahl gewählt und der Kartenrand dafür verbreitert wird.</td><td><spanclass="pill pill-ok">grün</span></td></tr><tr><tdclass="mono">TestBerechneAnordnung<br><spanclass="testname">test_seite_wird_hoeher_wenn_auch_drei_spalten_nicht_reichen</span></td><td>Prüft, dass die Seite höher wird und Quellenangabe und Kartenschild nach unten rutschen, wenn auch drei Spalten nicht reichen.</td><td><spanclass="pill pill-ok">grün</span></td></tr><tr><tdclass="mono">TestBerechneAnordnung<br><spanclass="testname">test_seite_wird_nie_kleiner</span></td><td>Prüft, dass Seitenbreite und -höhe nie unter die ursprüngliche Seitengröße fallen.</td><td><spanclass="pill pill-ok">grün</span></td></tr><tr><tdclass="mono">TestBerechneAnordnung<br><spanclass="testname">test_ohne_legenden_nur_kartenschild</span></td><td>Prüft, dass ohne Legenden nur Quellenangabe und Kartenschild zählen und die Seite bei zu niedriger Karte höher wird.</td><td><spanclass="pill pill-ok">grün</span></td></tr><tr><tdclass="mono">TestOrdneKartenrandAn<br><spanclass="testname">test_seite_hoeher_und_kartenschild_verschoben</span></td><td>Prüft, dass bei zu niedriger Karte die Legende dreispaltig wird, die Seite wächst und Quellenangabe und Kartenschild um denselben Betrag nach unten rutschen.</td><td><spanclass="pill pill-ok">grün</span></td></tr><tr><tdclass="mono">TestOrdneKartenrandAn<br><spanclass="testname">test_passt_nichts_wird_verschoben</span></td><td>Prüft, dass bei ausreichend hoher Karte weder Seite noch Kartenschild verändert werden.</td><td><spanclass="pill pill-ok">grün</span></td></tr><tr><tdclass="mono">TestOrdneKartenrandAn<br><spanclass="testname">test_ohne_karte_keine_anordnung</span></td><td>Prüft, dass ein Layout ohne Hauptkarte unverändert bleibt.</td><td><spanclass="pill pill-ok">grün</span></td></tr><tr><tdclass="mono">TestAnbindungPrintLayout<br><spanclass="testname">test_vorlage_ordnet_kartenrand_an</span></td><td>Prüft, dass PrintLayout beim Anlegen einer Vorlage den Kartenrand anordnen lässt.</td><td><spanclass="pill pill-ok">grün</span></td></tr><tr><tdclass="mono">TestAnbindungPrintLayout<br><spanclass="testname">test_fehler_bei_der_anordnung_verhindert_die_vorlage_nicht</span></td><td>Prüft, dass ein Fehler bei der Anordnung nur als Warnung gemeldet wird und keine Ausnahme durchreicht.</td><td><spanclass="pill pill-ok">grün</span></td></tr></tbody></table></div></article><articleclass="filecard"data-search="plugin_sn_basis/tests/test_print_layout.py testprintlayout test_create_legend_item_links_map_and_enables_map_filtering testprintlayout test_create_legend_item_does_not_copy_project_layers_into_legend_model testprintlayout test_configure_legend_size_uses_content_adaptive_size testprintlayout test_configure_hauptkarte_grids_uses_wrapper_constants testprintlayout test_create_single_page_layout_keeps_legend_linked_to_hauptkarte_and_theme"data-hasred="0"data-hasskip="0"data-nodoc="0"><buttonclass="card-toggle"data-target="plugin-sn-basis-tests-test-print-layout-py"aria-expanded="false"><spanclass="card-path mono">Plugin_SN_Basis/tests/test_print_layout.py</span><spanclass="card-meta"><spanclass="count-total">5 Testfälle</span><spanclass="cpill cpill-ok">5</span><spanclass="docbadge"title="Anteil mit Docstring">100% beschrieben</span><spanclass="chev"aria-hidden="true">▾</span></span></button><divclass="card-body"id="body-plugin-sn-basis-tests-test-print-layout-py"><pclass="filedesc">— (Docstring fehlt)</p><divclass="gchips"><spanclass="gchip"title="">TestPrintLayout <b>5</b></span></div><divclass="diagram-wrap"><preclass="mermaid">flowchart TD
| `TestBerechneAnordnung.test_passt_einspaltig_nichts_aendert_sich` | Prüft, dass bei genug Platz neben der Karte einspaltig angeordnet wird und Seite und Kartenschild bleiben. | grün |
| `TestBerechneAnordnung.test_mehr_spalten_und_breiterer_rand` | Prüft, dass bei zu hohen Legenden die kleinste passende Spaltenzahl gewählt und der Kartenrand dafür verbreitert wird. | grün |
| `TestBerechneAnordnung.test_seite_wird_hoeher_wenn_auch_drei_spalten_nicht_reichen` | Prüft, dass die Seite höher wird und Quellenangabe und Kartenschild nach unten rutschen, wenn auch drei Spalten nicht reichen. | grün |
| `TestBerechneAnordnung.test_seite_wird_nie_kleiner` | Prüft, dass Seitenbreite und -höhe nie unter die ursprüngliche Seitengröße fallen. | grün |
| `TestBerechneAnordnung.test_ohne_legenden_nur_kartenschild` | Prüft, dass ohne Legenden nur Quellenangabe und Kartenschild zählen und die Seite bei zu niedriger Karte höher wird. | grün |
| `TestOrdneKartenrandAn.test_seite_hoeher_und_kartenschild_verschoben` | Prüft, dass bei zu niedriger Karte die Legende dreispaltig wird, die Seite wächst und Quellenangabe und Kartenschild um denselben Betrag nach unten rutschen. | grün |
| `TestOrdneKartenrandAn.test_passt_nichts_wird_verschoben` | Prüft, dass bei ausreichend hoher Karte weder Seite noch Kartenschild verändert werden. | grün |
| `TestOrdneKartenrandAn.test_ohne_karte_keine_anordnung` | Prüft, dass ein Layout ohne Hauptkarte unverändert bleibt. | grün |
| `TestAnbindungPrintLayout.test_vorlage_ordnet_kartenrand_an` | Prüft, dass PrintLayout beim Anlegen einer Vorlage den Kartenrand anordnen lässt. | grün |
| `TestAnbindungPrintLayout.test_fehler_bei_der_anordnung_verhindert_die_vorlage_nicht` | Prüft, dass ein Fehler bei der Anordnung nur als Warnung gemeldet wird und keine Ausnahme durchreicht. | grün |
### `Plugin_SN_Basis/tests/test_print_layout.py`
Worum es in der Datei geht: — (Docstring fehlt)
@@ -1426,7 +1449,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,
dann verschwindet er hier von selbst.
### `sn_basis` – 0 von 410 Testfällen ohne Beschreibung
### `sn_basis` – 0 von 420 Testfällen ohne Beschreibung
@@ -84,6 +84,10 @@ Kurz, konkret, mit Datum und Quelle. Neue Einträge oben in der passenden Rubrik
berechnen; für mehrere Spalten zusätzlich `setSplitLayer(True)`, sonst bleibt ein Layer in einer Spalte.
Eine Legende mit `setLegendFilterByMapEnabled(True)` blendet Layer aus, die nicht in der Karte liegen, und ihre
Höhe steht erst nach dem Rendern fest. (02.10.2026, Spike Basis #88)
Auch `QgsLegendRenderer.minimumSize` liefert vor dem ersten Zeichnen die **ungefilterte** Höhe (Beispiel: 344 statt
177 mm). Verlässlich vermessen: Legende einmal mit geringer Auflösung zeichnen
(`QgsLayoutExporter(layout).renderRegionToImage(legende.sceneBoundingRect(), QSize(), 25)`), danach wirken
Filter und `adjustBoxSize`. (02.10.2026, Basis #93)
- **Projektvariablen-Schlüssel ohne `sn_` übergeben.** `set_variable("sn_abdeckungslayer", ...)` erzeugt `sn_sn_abdeckungslayer` (Altlast in Druckmodulen; funktioniert nur, weil Lesen und Schreiben denselben Fehler machen).
- **Zwei Schreibweisen für den Verfahrensgebiet-Layer:** `verfahrensgebiet_layer` (Manager, Fachplugins) und `verfahrensgebietslayer` (`print_logic.py`). Bis zur Bereinigung nicht auf Gleichheit vertrauen.
- **Layer werden über Anzeigenamen gefunden** (`BROR_LAYER_NAME` usw.). Umbenennungen in der UI brechen Abläufe.
Reference in New Issue
Block a user
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.