diff --git a/app.py b/app.py index f135492..474ef43 100644 --- a/app.py +++ b/app.py @@ -1263,7 +1263,7 @@ class RechnungsApp(ThemeMixin, KorrekturMixin, EinstellungenMixin, tk.Tk): pdf_renderer.render_rechnung(pfad, self.cfg, r, kopf, vorschau=True) print(f"[vorschau] geschrieben -> {pfad}") if oeffnen: - os.startfile(pfad) # noqa: S606 + self._oeffne_datei(pfad) return pfad except OSError as e: messagebox.showerror("Vorschau nicht möglich", @@ -1614,6 +1614,16 @@ class RechnungsApp(ThemeMixin, KorrekturMixin, EinstellungenMixin, tk.Tk): def _oeffne_datei(self, pfad): + """Datei oder Ordner im Betrachter oeffnen. Im Pruflauf: NICHT. + + Ein Pruefstand schreibt Dutzende Rechnungen. Wuerde jede davon den + PDF-Betrachter aufmachen, hat der Mensch am Rechner am Ende dreissig + Fenster offen, die er selbst wegklicken darf. Gemeldet wird es trotzdem, + damit im Protokoll steht, was zu sehen gewesen waere. + """ + if TESTLAUF: + print(f"[oeffnen] im Pruflauf nicht geoeffnet: {pfad}") + return False try: if sys.platform.startswith("win"): os.startfile(pfad) # noqa: S606 diff --git a/pruef_vorschau.py b/pruef_vorschau.py index 374c1a6..fa615e7 100644 --- a/pruef_vorschau.py +++ b/pruef_vorschau.py @@ -61,8 +61,9 @@ def pruefe(bedingung, text): messagebox.showinfo = messagebox.showwarning = messagebox.showerror = lambda *a, **k: None messagebox.askyesno = lambda *a, **k: True -# Die Vorschau oeffnet den PDF-Betrachter - im Pruefstand wird nur gemerkt, WAS -# sie oeffnen wollte. +# Im Pruflauf oeffnet das Programm nichts mehr (sonst stehen nach einem Lauf +# dreissig PDF-Fenster offen). Geprueft wird der Pfad, den die Vorschau +# zurueckgibt - und dass wirklich NICHTS aufgemacht wurde. geoeffnet = [] A.os.startfile = lambda p, *a, **k: geoeffnet.append(p) @@ -81,10 +82,10 @@ f.update() nummer_vorher = f.r_nummer.get() zaehler_vorher = f.cfg.get("rechnung_zaehler") -f.vorschau_zeigen() +pfad = f.vorschau_zeigen() -pruefe(len(geoeffnet) == 1, f"Vorschau oeffnet genau ein Blatt ({len(geoeffnet)})") -pfad = geoeffnet[0] if geoeffnet else "" +pruefe(bool(pfad), f"die Vorschau nennt ihr Blatt ({os.path.basename(str(pfad))})") +pruefe(not geoeffnet, f"im Pruflauf wird KEIN Betrachter aufgemacht ({geoeffnet})") pruefe(os.path.exists(pfad), "Vorschau-PDF wurde geschrieben") pruefe(os.path.abspath(ordner) not in os.path.abspath(pfad), "Vorschau liegt NICHT im Rechnungsordner")