Anzeigefenster ohne Vollbild: Testkonzept und Fallstrick (Verfahrensgebiet #56)
Befund aus dem QGIS-Test (Fenster immer auf dem Hauptbildschirm, im Vollbild nicht zu verlassen) in fallstricke.md festgehalten; Testkonzept, Modulkarte und Testkatalog an das Fenster mit Rahmen und die Pfadanzeige der Korrektur-Datei angepasst. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+37
-33
File diff suppressed because one or more lines are too long
+18
-16
@@ -9,17 +9,17 @@ selbst (Docstrings) und aus der Testbaseline.
|
||||
|
||||
Stand der Baseline: `docs/status/testbaseline.json` (SHA-256 `aeabc946a7f3`)
|
||||
|
||||
Gesamt: 3 Pakete, 66 Testdateien, 822 Testfälle – 779 grün, 35 rot (Baseline), 8 übersprungen.
|
||||
Mit Beschreibung (Docstring): 677 von 822 (82 %).
|
||||
Gesamt: 3 Pakete, 66 Testdateien, 823 Testfälle – 780 grün, 35 rot (Baseline), 8 übersprungen.
|
||||
Mit Beschreibung (Docstring): 678 von 823 (82 %).
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
| Paket | Testdateien | Testfälle | grün | rot (Baseline) | übersprungen | mit Beschreibung |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
||||
| `sn_basis` | 43 | 490 | 490 | 0 | 0 | 490 von 490 (100 %) |
|
||||
| `sn_verfahrensgebiet` | 18 | 288 | 246 | 34 | 8 | 186 von 288 (65 %) |
|
||||
| `sn_verfahrensgebiet` | 18 | 289 | 247 | 34 | 8 | 187 von 289 (65 %) |
|
||||
| `sn_plan41` | 5 | 44 | 43 | 1 | 0 | 1 von 44 (2 %) |
|
||||
| **Summe** | **66** | **822** | **779** | **35** | **8** | **677 von 822 (82 %)** |
|
||||
| **Summe** | **66** | **823** | **780** | **35** | **8** | **678 von 823 (82 %)** |
|
||||
|
||||
### Legende
|
||||
|
||||
@@ -1071,7 +1071,7 @@ Testgruppen:
|
||||
|
||||
## Paket `sn_verfahrensgebiet`
|
||||
|
||||
Fachplugin, Ordner `Plugin_SN_Verfahrensgebiet` – 18 Testdateien mit 288 Testfällen (246 grün, 34 rot, 8 übersprungen).
|
||||
Fachplugin, Ordner `Plugin_SN_Verfahrensgebiet` – 18 Testdateien mit 289 Testfällen (247 grün, 34 rot, 8 übersprungen).
|
||||
|
||||
### `Plugin_SN_Verfahrensgebiet/tests/test_beteiligung_pruefung.py`
|
||||
|
||||
@@ -1135,7 +1135,7 @@ Worum es in der Datei geht: Tests für das Anzeigefenster des Eigentümer-Datena
|
||||
Testgruppen:
|
||||
|
||||
- `TestAnzeigetext` (6 Testfälle): — (Docstring fehlt)
|
||||
- `TestBildschirme` (6 Testfälle): — (Docstring fehlt)
|
||||
- `TestFensterOeffnen` (3 Testfälle): — (Docstring fehlt)
|
||||
|
||||
| Testfall | prüft | Status |
|
||||
| --- | --- | --- |
|
||||
@@ -1145,12 +1145,9 @@ Testgruppen:
|
||||
| `TestAnzeigetext.test_werte_werden_maskiert` | Prüft, dass Sonderzeichen aus den Daten maskiert werden und kein HTML einschleusen. | grün |
|
||||
| `TestAnzeigetext.test_mehrere_eintraege_getrennt` | Prüft, dass mehrere Einträge untereinander, durch eine Linie getrennt, erscheinen. | grün |
|
||||
| `TestAnzeigetext.test_leer_nur_platzhalter` | Prüft, dass die leere Anzeige nur den neutralen Platzhalter zeigt. | grün |
|
||||
| `TestBildschirme.test_vorgabe_ist_nicht_der_qgis_bildschirm` | Prüft, dass als Vorgabe der erste Bildschirm ohne QGIS gewählt wird, bei nur einem Bildschirm dieser. | grün |
|
||||
| `TestBildschirme.test_bildschirm_text` | Prüft, dass ein Bildschirm mit Nummer und Auflösung beschriftet wird. | grün |
|
||||
| `TestBildschirme.test_ohne_qt_anwendung_keine_bildschirme` | Prüft, dass ohne Qt-Anwendung (Mock-Modus) eine leere Bildschirmliste kommt statt eines Fehlers. | grün |
|
||||
| `TestBildschirme.test_vollbild_auf_gewaehltem_bildschirm` | Prüft, dass das Fenster im Vollbild dem gewählten Bildschirm zugeordnet und auf dessen Fläche gelegt wird. | grün |
|
||||
| `TestBildschirme.test_normales_fenster_mittig` | Prüft, dass auf dem QGIS-Bildschirm ein normales Fenster mittig im freien Bereich öffnet. | grün |
|
||||
| `TestBildschirme.test_ohne_bildschirm_einfach_zeigen` | Prüft, dass ohne bekannten Bildschirm das Fenster einfach gezeigt wird. | grün |
|
||||
| `TestFensterOeffnen.test_normales_fenster_in_standardgroesse` | Prüft, dass das Anzeigefenster ohne gemerkte Lage als normales Fenster mit Rahmen in Standardgröße öffnet, nie im Vollbild. | grün |
|
||||
| `TestFensterOeffnen.test_gemerkte_lage_wird_wiederhergestellt` | Prüft, dass eine gemerkte Größe und Lage der letzten Sitzung wiederhergestellt wird. | grün |
|
||||
| `TestFensterOeffnen.test_unbrauchbare_lage_ergibt_standardgroesse` | Prüft, dass eine nicht wiederherstellbare Lage auf die Standardgröße zurückfällt. | grün |
|
||||
|
||||
### `Plugin_SN_Verfahrensgebiet/tests/test_eigentuemer_korrektur.py`
|
||||
|
||||
@@ -1213,6 +1210,7 @@ Testgruppen:
|
||||
- `TestEigentuemerSuchen` (4 Testfälle): — (Docstring fehlt)
|
||||
- `TestTrefferliste` (3 Testfälle): — (Docstring fehlt)
|
||||
- `TestSitzung` (7 Testfälle): — (Docstring fehlt)
|
||||
- `TestKorrekturLabel` (4 Testfälle): — (Docstring fehlt)
|
||||
- `TestKorrektur` (5 Testfälle): — (Docstring fehlt)
|
||||
- `TestKorrekturDatei` (2 Testfälle): — (Docstring fehlt)
|
||||
- `TestDockWidgetTabs` (1 Testfälle): — (Docstring fehlt)
|
||||
@@ -1231,13 +1229,17 @@ Testgruppen:
|
||||
| `TestTrefferliste.test_trefferzeile_mit_hinweis` | Prüft, dass die Trefferliste Name, Anschrift, E-Mail, den Rohwert von PER_RECHTSPERSON und das Kennzeichen „verstorben“ zeigt. | grün |
|
||||
| `TestTrefferliste.test_ausgewaehlte_eigentuemer` | Prüft, dass das Trefferfenster die in der Tabelle gewählten Einträge zurückgibt. | grün |
|
||||
| `TestTrefferliste.test_daten_anzeigen_gibt_auswahl_weiter` | Prüft, dass „Daten anzeigen“ die Auswahl der Trefferliste an den Tab übergibt. | grün |
|
||||
| `TestSitzung.test_sitzung_beginnen_im_vollbild_auf_zweitem_bildschirm` | Prüft, dass „Sitzung beginnen“ ein leeres Anzeigefenster auf dem gewählten Bildschirm öffnet, im Vollbild, wenn QGIS woanders liegt. | grün |
|
||||
| `TestSitzung.test_auf_qgis_bildschirm_kein_vollbild` | Prüft, dass das Anzeigefenster auf dem QGIS-Bildschirm als normales Fenster öffnet. | grün |
|
||||
| `TestSitzung.test_sitzung_beginnen_oeffnet_leeres_fenster_mit_rahmen` | Prüft, dass „Sitzung beginnen“ ein leeres Anzeigefenster als normales Fenster öffnet (ohne gemerkte Lage beim ersten Mal). | grün |
|
||||
| `TestSitzung.test_lage_gilt_fuer_naechste_sitzung` | Prüft, dass Größe und Lage des Fensters beim Beenden gemerkt und in der nächsten Sitzung wiederverwendet werden. | grün |
|
||||
| `TestSitzung.test_daten_anzeigen_beginnt_sitzung_bei_bedarf` | Prüft, dass „Daten anzeigen“ ohne laufende Sitzung diese beginnt und die Einträge zeigt; die Statuszeile nennt nur die Anzahl. | grün |
|
||||
| `TestSitzung.test_daten_anzeigen_ohne_auswahl` | Prüft, dass „Daten anzeigen“ ohne Auswahl nur einen Hinweis gibt und keine Sitzung beginnt. | grün |
|
||||
| `TestSitzung.test_anzeige_leeren_laesst_fenster_offen` | Prüft, dass „Anzeige leeren“ die Daten entfernt, das Fenster aber nicht schließt. | grün |
|
||||
| `TestSitzung.test_sitzung_beenden_schliesst_fenster` | Prüft, dass „Sitzung beenden“ das Anzeigefenster schließt und die angezeigten Daten vergisst. | grün |
|
||||
| `TestSitzung.test_von_aussen_geschlossen_beendet_sitzung` | Prüft, dass ein von außen geschlossenes Anzeigefenster (z. B. Alt+F4) die Sitzung im Tab beendet. | grün |
|
||||
| `TestSitzung.test_von_aussen_geschlossen_beendet_sitzung` | Prüft, dass ein über den Fensterrahmen geschlossenes Anzeigefenster die Sitzung beendet und seine Lage gemerkt wird. | grün |
|
||||
| `TestKorrekturLabel.test_ohne_eigentuemerdatei` | Prüft, dass ohne Eigentümerdatei unter den Knöpfen steht, dass keine gewählt ist. | grün |
|
||||
| `TestKorrekturLabel.test_pfad_neben_der_eigentuemerdatei` | Prüft, dass der Pfad der Korrektur-CSV angezeigt wird, mit Hinweis, solange sie noch nicht angelegt ist. | grün |
|
||||
| `TestKorrekturLabel.test_ohne_csv_quelle_wird_abgefragt` | Prüft, dass bei einer Quelle ohne CSV angekündigt wird, dass der Speicherort beim ersten Speichern abgefragt wird. | grün |
|
||||
| `TestKorrekturLabel.test_gewaehlter_pfad_wird_angezeigt` | Prüft, dass ein einmal gewählter Speicherort angezeigt wird. | grün |
|
||||
| `TestKorrektur.test_korrektur_wird_festgehalten_und_angezeigt` | Prüft, dass eine Korrektur in die Korrektur-CSV geschrieben, sofort angezeigt und ohne Namen gemeldet wird. | grün |
|
||||
| `TestKorrektur.test_ohne_aenderung_nichts_schreiben` | Prüft, dass ein unverändert gespeicherter Dialog nichts schreibt. | grün |
|
||||
| `TestKorrektur.test_abbruch_nichts_schreiben` | Prüft, dass ein abgebrochener Korrekturdialog nichts schreibt. | grün |
|
||||
@@ -1719,7 +1721,7 @@ dann verschwindet er hier von selbst.
|
||||
|
||||
Keine Lücken.
|
||||
|
||||
### `sn_verfahrensgebiet` – 102 von 288 Testfällen ohne Beschreibung
|
||||
### `sn_verfahrensgebiet` – 102 von 289 Testfällen ohne Beschreibung
|
||||
|
||||
#### `Plugin_SN_Verfahrensgebiet/tests/test_beteiligung_pruefung.py` (25 von 25)
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ Plugin: `sn_verfahrensgebiet` · Stand: 06.10.2026 · Pflege: bei jeder Änderun
|
||||
|
||||
Im Termin sitzt der Eigentümer vor einem zweiten Bildschirm. Dort sieht er nur seine eigenen gespeicherten Daten:
|
||||
Name, Anschrift und E-Mail. Den QGIS-Bildschirm mit Trefferliste, Konten und anderen Personen sieht er nicht.
|
||||
Die Sachbearbeitung beginnt zu Beginn der Termine eine Sitzung. Für jeden Eigentümer wählt sie in der Trefferliste
|
||||
Die Sachbearbeitung beginnt zu Beginn der Termine eine Sitzung und schiebt das Anzeigefenster auf den Bildschirm des Eigentümers; beim nächsten Mal erscheint es wieder dort. Für jeden Eigentümer wählt sie in der Trefferliste
|
||||
die passenden Einträge und zeigt sie an. Stimmt etwas nicht, korrigiert sie es im Plugin. Der Eigentümer sieht die
|
||||
Korrektur sofort. Vor dem nächsten Eigentümer leert sie die Anzeige, ohne das Fenster zu schließen. Am Ende beendet
|
||||
sie die Sitzung.
|
||||
@@ -20,7 +20,7 @@ Die Suche bis zur Trefferliste beschreibt [`verfahrensgebiet-eigentuemersuche.md
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A["1 Bildschirm wählen,<br/>Sitzung beginnen"] --> B["2 Anzeigefenster öffnet leer<br/>(zweiter Bildschirm: Vollbild)"]
|
||||
A["1 Sitzung beginnen"] --> B["2 Anzeigefenster öffnet leer, mit Rahmen;<br/>Bearbeiter schiebt es auf den zweiten Bildschirm"]
|
||||
T["Trefferliste: Einträge wählen,<br/>„Daten anzeigen“"] --> C{"Sitzung läuft?"}
|
||||
C -->|nein| A
|
||||
C -->|ja| D["3 Eigentümer sieht Name,<br/>Anschrift, E-Mail"]
|
||||
@@ -37,16 +37,14 @@ flowchart TD
|
||||
|
||||
## Was geprüft wird
|
||||
|
||||
Die Tests liegen in `Plugin_SN_Verfahrensgebiet/tests/test_eigentuemer_anzeige.py` (Anzeigetext, Bildschirme),
|
||||
Die Tests liegen in `Plugin_SN_Verfahrensgebiet/tests/test_eigentuemer_anzeige.py` (Anzeigetext, Fenster öffnen),
|
||||
`tests/test_eigentuemer_korrektur.py` (Korrekturlogik, Korrektur-CSV) und `tests/test_eigentuemer_tab.py`
|
||||
(Sitzung, Korrektur im Tab).
|
||||
|
||||
| # | Schritt | Wird geprüft durch | Ebene |
|
||||
|---|---|---|---|
|
||||
| 1 | Vorgabe: erster Bildschirm ohne QGIS | `test_vorgabe_ist_nicht_der_qgis_bildschirm`, `test_bildschirm_text` | Mock |
|
||||
| 1 | Ohne Qt-Anwendung keine Bildschirme | `test_ohne_qt_anwendung_keine_bildschirme` | Mock |
|
||||
| 2 | Sitzung beginnen: leer, Vollbild auf zweitem Bildschirm | `test_sitzung_beginnen_im_vollbild_auf_zweitem_bildschirm`, `test_vollbild_auf_gewaehltem_bildschirm` | Mock |
|
||||
| 2 | Auf dem QGIS-Bildschirm normales Fenster | `test_auf_qgis_bildschirm_kein_vollbild`, `test_normales_fenster_mittig`, `test_ohne_bildschirm_einfach_zeigen` | Mock |
|
||||
| 2 | Sitzung beginnen: leeres Fenster mit Rahmen, nie Vollbild | `test_sitzung_beginnen_oeffnet_leeres_fenster_mit_rahmen`, `test_normales_fenster_in_standardgroesse` | Mock |
|
||||
| 2 | Lage des Fensters gilt für die nächste Sitzung | `test_lage_gilt_fuer_naechste_sitzung`, `test_gemerkte_lage_wird_wiederhergestellt`, `test_unbrauchbare_lage_ergibt_standardgroesse` | Mock |
|
||||
| 3 | „Daten anzeigen“ beginnt bei Bedarf die Sitzung | `test_daten_anzeigen_beginnt_sitzung_bei_bedarf`, `test_daten_anzeigen_gibt_auswahl_weiter` | Mock |
|
||||
| 3 | Ohne Auswahl nur ein Hinweis | `test_daten_anzeigen_ohne_auswahl` | Mock |
|
||||
| 3 | Inhalt: Name, Anschrift, E-Mail; mehrere Einträge | `test_name_anschrift_email`, `test_mehrere_eintraege_getrennt` | Mock |
|
||||
@@ -59,6 +57,7 @@ Die Tests liegen in `Plugin_SN_Verfahrensgebiet/tests/test_eigentuemer_anzeige.p
|
||||
| 5 | Pfad neben der Eigentümerdatei, sonst Rückfrage | `test_textdatei_provider`, `test_ogr_provider`, `test_keine_csv`, `test_vorschlag_neben_der_eigentuemerdatei`, `test_ohne_csv_quelle_wird_gefragt` | Mock |
|
||||
| 5 | Schreibfehler | `test_schreibfehler_wird_weitergereicht`, `test_schreibfehler_warnung_und_anzeige_unveraendert` | Mock |
|
||||
| 5 | Ohne Anzeige keine Korrektur | `test_ohne_anzeige_keine_korrektur` | Mock |
|
||||
| 5 | Pfad der Korrektur-Datei unter den Knöpfen | `test_ohne_eigentuemerdatei`, `test_pfad_neben_der_eigentuemerdatei`, `test_ohne_csv_quelle_wird_abgefragt`, `test_gewaehlter_pfad_wird_angezeigt` | Mock |
|
||||
| 6 | Anzeige leeren, Fenster bleibt offen | `test_anzeige_leeren_laesst_fenster_offen`, `test_leer_nur_platzhalter` | Mock |
|
||||
| 7 | Sitzung beenden bzw. Fenster von außen geschlossen | `test_sitzung_beenden_schliesst_fenster`, `test_von_aussen_geschlossen_beendet_sitzung` | Mock |
|
||||
| — | Keine Personendaten auf der Konsole | `test_schreibt_nichts_auf_die_konsole` | Mock |
|
||||
@@ -70,7 +69,7 @@ Ebene: `Mock` (ohne QGIS, Sekunden) · `QGIS` (gegen echtes QGIS) · `manuell` (
|
||||
|
||||
| Sonderfall | Kommt vor bei | Wird geprüft durch |
|
||||
|---|---|---|
|
||||
| Nur ein Bildschirm (Notebook) | Termin ohne zweiten Monitor, Ausprobieren | `test_auf_qgis_bildschirm_kein_vollbild` |
|
||||
| Nur ein Bildschirm (Notebook) | Termin ohne zweiten Monitor, Ausprobieren | `test_normales_fenster_in_standardgroesse` (immer mit Rahmen, verdeckt QGIS nie ausweglos) |
|
||||
| Eheleute oder Miteigentümer erscheinen gemeinsam | mehrere Einträge auf einmal anzeigen und einzeln korrigieren | `test_mehrere_eintraege_getrennt`, `test_korrektur_wird_festgehalten_und_angezeigt` |
|
||||
| Eigentümer hat keine E-Mail hinterlegt | häufig; soll beim Termin ergänzt werden | `test_fehlende_email_wird_genannt` |
|
||||
| Neue Anschrift mit Komma („Am Anger 3, Haus B“) | Zusatz zur Hausnummer | `test_neue_datei_mit_kopfzeile_und_bom` |
|
||||
@@ -81,7 +80,7 @@ Ebene: `Mock` (ohne QGIS, Sekunden) · `QGIS` (gegen echtes QGIS) · `manuell` (
|
||||
|
||||
| Was | Warum | Wie stattdessen abgesichert |
|
||||
|---|---|---|
|
||||
| Fenster tatsächlich auf dem zweiten Bildschirm im Vollbild | braucht echte Bildschirme; im Mock-Modus gibt es keine | Aufrufreihenfolge mit Attrappe geprüft, manueller Test mit zwei Bildschirmen |
|
||||
| Wiederherstellen der Lage auf dem zweiten Bildschirm | braucht echte Bildschirme; im Mock-Modus gibt es keine | Aufruf mit Attrappe geprüft, manueller Test mit zwei Bildschirmen |
|
||||
| Korrekturdialog mit echten Eingabefeldern | im Mock-Modus gibt es keine Widgets; die Vorbelegung (`feldwerte`) und die Auswertung sind als reine Funktionen getestet | manueller Test |
|
||||
| Schriftgröße und Lesbarkeit der Anzeige | Geschmack und Bildschirmgröße | manueller Test im Termin |
|
||||
|
||||
@@ -89,5 +88,6 @@ Ebene: `Mock` (ohne QGIS, Sekunden) · `QGIS` (gegen echtes QGIS) · `manuell` (
|
||||
|
||||
| Lücke | Auswirkung | Issue |
|
||||
|---|---|---|
|
||||
| Der manuelle Test mit zwei Bildschirmen steht aus, auch mit unterschiedlicher Skalierung (z. B. Notebook 150 %, Monitor 100 %) | Das Fenster könnte auf dem falschen Bildschirm oder nicht ganz im Vollbild erscheinen | Verfahrensgebiet #56 |
|
||||
| Wiederherstellen der Lage in der nächsten Sitzung ist in QGIS noch nicht bestätigt | Das Fenster erscheint dann wieder auf dem Hauptbildschirm und muss erneut verschoben werden – lästig, aber gefahrlos | Verfahrensgebiet #56 |
|
||||
| Die Lage wird nur bis zum Neustart von QGIS gemerkt | nach jedem Start einmal verschieben | bei Bedarf eigenes Issue (QSettings) |
|
||||
| Eine neue Suche leert die Anzeige nicht von selbst | Wer „Anzeige leeren“ vergisst, zeigt dem nächsten Eigentümer noch die vorherigen Daten | bewusst so (Bearbeiter entscheidet); bei Bedarf eigenes Issue |
|
||||
|
||||
Reference in New Issue
Block a user