Dateipruefer/Pruefmanager prüfen Standarddatei nie auf Existenz #59

Open
opened 2026-09-17 12:05:51 +00:00 by Daniel · 1 comment
Member

Ziel

Wenn im "Standarddatei"-Modus (Parameter standarddatei von Dateipruefer) die
vorgeschlagene Standarddatei tatsächlich fehlt, soll das Programm das als
datei_nicht_gefunden melden statt fälschlich ok=True/"ok" zurückzugeben.

Betroffen

Plugin: sn_basis
Module/Dateien:

  • modules/Dateipruefer.py, Methode _handle_leere_eingabe() (Zeile 239-248):
    liefert bei leerem Pfad + gesetztem standarddatei immer aktion="standarddatei_vorschlagen",
    ohne vorher file_exists() auf die Standarddatei anzuwenden.
  • modules/Pruefmanager.py, Methode _handle_basic_decision() (Zeile 189-193):
    wenn der Nutzer die Rückfrage mit "Ja" bestätigt, wird generisch
    pruef_ergebnis(ok=True, aktion="ok", kontext=ergebnis.kontext) zurückgegeben –
    auch hier ohne erneute Existenzprüfung der Standarddatei.
    Berührt Schnittstellen (docs/architektur/schnittstellen.md)? nein

Fachlicher Hintergrund

Dateipruefer kennt laut eigenem Docstring drei Leer-Eingabe-Modi: leereingabe_erlaubt,
standarddatei (Vorschlag einer Standarddatei) und temporaer_erlaubt. Für die beiden
anderen Modi und für einen direkt angegebenen Pfad wird die Existenz jeweils sauber mit
file_exists() geprüft (siehe test_datei_nicht_gefunden/test_datei_ok). Für den
Standarddatei-Vorschlag fehlt dieser Schritt komplett – weder beim Vorschlagen noch bei
der Bestätigung durch den Nutzer im Pruefmanager.

Hinweis: Aktuell übergibt kein Aufrufer (DataGrabber.py, excel_importer.py) den
Parameter standarddatei – der Modus ist offenbar für einen künftigen Workflow
vorbereitet, aber noch nicht produktiv angeschlossen. Das Verhalten ist also aktuell
nirgends live sichtbar, sollte aber vor dem ersten echten Einsatz korrigiert sein.

Entdeckt während des Test-Audits (#16) beim Durchgehen von TestDateipruefer.

Abnahmekriterien

  • Ist pfad leer, standarddatei gesetzt und die Standarddatei existiert nicht:
    Dateipruefer.pruefe() liefert aktion="datei_nicht_gefunden" (oder eine neue,
    eindeutig benannte Aktion) statt standarddatei_vorschlagen – zu klären, ob die
    Prüfung schon in Dateipruefer oder erst im Pruefmanager bei der Ja-Antwort
    passieren soll.
  • Existiert die Standarddatei, bleibt das bisherige Verhalten unverändert
    (standarddatei_vorschlagen → bei "Ja" ok=True, "ok").
  • Mock-Test vorhanden (rot vor dem Fix, grün danach), run_tests.py sn_basis --baseline
    ohne NEU ROT.
  • QGIS-Test: nicht nötig, da noch kein Aufrufer den Standarddatei-Modus nutzt.

Nicht Teil dieses Issues

  • Den Standarddatei-Modus an einen echten Aufrufer anzuschließen.
  • Alle anderen im Test-Audit (#16) gefundenen Docstring-/Test-Abweichungen – die laufen
    separat ohne Verhaltensänderung.
## Ziel Wenn im "Standarddatei"-Modus (Parameter `standarddatei` von `Dateipruefer`) die vorgeschlagene Standarddatei tatsächlich fehlt, soll das Programm das als `datei_nicht_gefunden` melden statt fälschlich `ok=True`/`"ok"` zurückzugeben. ## Betroffen Plugin: sn_basis Module/Dateien: - `modules/Dateipruefer.py`, Methode `_handle_leere_eingabe()` (Zeile 239-248): liefert bei leerem Pfad + gesetztem `standarddatei` immer `aktion="standarddatei_vorschlagen"`, ohne vorher `file_exists()` auf die Standarddatei anzuwenden. - `modules/Pruefmanager.py`, Methode `_handle_basic_decision()` (Zeile 189-193): wenn der Nutzer die Rückfrage mit "Ja" bestätigt, wird generisch `pruef_ergebnis(ok=True, aktion="ok", kontext=ergebnis.kontext)` zurückgegeben – auch hier ohne erneute Existenzprüfung der Standarddatei. Berührt Schnittstellen (`docs/architektur/schnittstellen.md`)? nein ## Fachlicher Hintergrund `Dateipruefer` kennt laut eigenem Docstring drei Leer-Eingabe-Modi: `leereingabe_erlaubt`, `standarddatei` (Vorschlag einer Standarddatei) und `temporaer_erlaubt`. Für die beiden anderen Modi und für einen direkt angegebenen Pfad wird die Existenz jeweils sauber mit `file_exists()` geprüft (siehe `test_datei_nicht_gefunden`/`test_datei_ok`). Für den Standarddatei-Vorschlag fehlt dieser Schritt komplett – weder beim Vorschlagen noch bei der Bestätigung durch den Nutzer im `Pruefmanager`. Hinweis: Aktuell übergibt kein Aufrufer (`DataGrabber.py`, `excel_importer.py`) den Parameter `standarddatei` – der Modus ist offenbar für einen künftigen Workflow vorbereitet, aber noch nicht produktiv angeschlossen. Das Verhalten ist also aktuell nirgends live sichtbar, sollte aber vor dem ersten echten Einsatz korrigiert sein. Entdeckt während des Test-Audits (#16) beim Durchgehen von `TestDateipruefer`. ## Abnahmekriterien - [ ] Ist `pfad` leer, `standarddatei` gesetzt und die Standarddatei existiert nicht: `Dateipruefer.pruefe()` liefert `aktion="datei_nicht_gefunden"` (oder eine neue, eindeutig benannte Aktion) statt `standarddatei_vorschlagen` – zu klären, ob die Prüfung schon in `Dateipruefer` oder erst im `Pruefmanager` bei der Ja-Antwort passieren soll. - [ ] Existiert die Standarddatei, bleibt das bisherige Verhalten unverändert (`standarddatei_vorschlagen` → bei "Ja" `ok=True, "ok"`). - [ ] Mock-Test vorhanden (rot vor dem Fix, grün danach), `run_tests.py sn_basis --baseline` ohne NEU ROT. - [ ] QGIS-Test: nicht nötig, da noch kein Aufrufer den Standarddatei-Modus nutzt. ## Nicht Teil dieses Issues - Den Standarddatei-Modus an einen echten Aufrufer anzuschließen. - Alle anderen im Test-Audit (#16) gefundenen Docstring-/Test-Abweichungen – die laufen separat ohne Verhaltensänderung.
Daniel added the Bug label 2026-09-17 12:05:51 +00:00
Author
Member

Die Frage, die sich stellt: brauchen wir den Standard-Datei-Modus? Er ist für Dateieingabefelder vorgesehen. Mit den Parametern Temporaer erlaubt, Standarddatei und Leereingabe erlaubt kann man steuern, wie mit einer leeren Eingabe umgegangen wird. Einfach ignorieren, Folgeoperationen auf temporär stellen, oder eben, statt eine Datei anzugeben, auf eine Standarddatei zurückfallen. Ursprünglich für die Linkliste vorgesehen, brauchen wir aber mit der API nicht mehr. Ein anderer Anwendungsfall, der mit spontan einfällt, wäre die Standard-Gpkg, die es zwar noch nicht gibt, aber die es ja vielleicht geben wird.
ODer ist die ganze Dateieingabe-Sache für Standards ohnehin hinfällig, weil wir es eleganter über Dienste oder APIs laufen lassen können?

Die Frage, die sich stellt: brauchen wir den Standard-Datei-Modus? Er ist für Dateieingabefelder vorgesehen. Mit den Parametern Temporaer erlaubt, Standarddatei und Leereingabe erlaubt kann man steuern, wie mit einer leeren Eingabe umgegangen wird. Einfach ignorieren, Folgeoperationen auf temporär stellen, oder eben, statt eine Datei anzugeben, auf eine Standarddatei zurückfallen. Ursprünglich für die Linkliste vorgesehen, brauchen wir aber mit der API nicht mehr. Ein anderer Anwendungsfall, der mit spontan einfällt, wäre die Standard-Gpkg, die es zwar noch nicht gibt, aber die es ja vielleicht geben wird. ODer ist die ganze Dateieingabe-Sache für Standards ohnehin hinfällig, weil wir es eleganter über Dienste oder APIs laufen lassen können?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: AG_QGIS/Plugin_SN_Basis#59