Absturz beim Schließen mit offenem Dialog behoben; GUI-Tests und Selbsttest der .exe im Build
Fehler: Programm schließen, während der Einrichtungs-Assistent offen war → Zugriff auf geschlossene Datenbank, danach Absturz des Fehler-Handlers. - beenden(): schließt zuerst offene Dialoge/Rückfragen/Rundgang, lässt wartende Abläufe zu Ende laufen und schließt erst dann Datenbank und Fenster; mehrfacher Aufruf unschädlich - Fehler-Handler protokolliert immer, zeigt aber keine Meldung mehr ohne Fenster - Alt+F4 schließt nur das aktive bzw. modale Fenster (nicht mehr das ganze Programm) - Betrag ändern: Ersatz-Dialog, wenn die Zelle nicht sichtbar ist (vorher passierte still nichts) - tests/test_gui.py: Oberflächen-Tests inkl. Schließen bei jedem Dialog, Watchdog gegen Hänger - Build: ein Xvfb für den ganzen Build (Wine bindet sich an das erste DISPLAY), GUI-Tests unter Windows-Python, danach Selbsttest der fertigen .exe (--selbsttest) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4cfe0e6c47
commit
aae28fa7f2
10 files changed
+795
-15
No files matched your search
@@ -97,9 +97,17 @@ Aufbau:
|
||||
Gitea Actions (`.gitea/workflows/windows-build.yml`) baut die `.exe` im Container
|
||||
`tobix/pywine:3.12` (Windows-Python unter Wine) mit PyInstaller:
|
||||
|
||||
- jeder Push: Tests unter Windows-Python + `Provisionsmanager95.exe` als Artefakt
|
||||
- jeder Push: alle Tests unter Windows-Python (Wine) **inklusive Oberflächen-Tests** auf einem
|
||||
virtuellen Bildschirm, danach `Provisionsmanager95.exe` bauen und mit
|
||||
`Provisionsmanager95.exe --selbsttest` die **fertige .exe** prüfen; erst dann gibt es das Artefakt
|
||||
- Tag `vX.Y.Z` (passend zu `provtool/__init__.py`): zusätzlich ein Gitea-Release mit `.exe` und `.zip`
|
||||
|
||||
Die Oberflächen-Tests (`tests/test_gui.py`) bedienen die echte Oberfläche: Dialoge öffnen,
|
||||
Programm schließen, während Assistent/Rückfragen/Rundgang offen sind, Alt+F4, Beträge ändern usw.
|
||||
Jede Ausnahme in der Oberfläche und jeder Eintrag in `fehler.log` lässt sie fehlschlagen; ein
|
||||
Watchdog bricht hängende Tests ab, statt den Build zu blockieren. Ohne Bildschirm werden sie lokal
|
||||
übersprungen, im Build (`PROVTOOL_GUI_TESTS=1`) ist das ein Fehler.
|
||||
|
||||
Lokal geht dasselbe mit Docker:
|
||||
|
||||
```bash
|
||||
|
||||
Reference in new issue
Block a user