"""Das mitgelieferte Symbol muss alle Groessen haben, die Windows holt. ## Der Befund (28.08.2026) Commander: *„Startmenue, Desktop und Taskleisten-Icon ohne icon file (Weisses Leeres Blatt)."* In `deploy/worker-windows/rippy.ico` steckte GENAU EIN Bild: 256x256 als PNG. Windows holt sich fuer jede Stelle die passende Groesse: Taskleiste, kleine Verknuepfung 16x16 Desktop, Startmenue 32x32 / 48x48 Alt-Tab, grosse Kacheln 256x256 Fehlt sie, skaliert die Shell nicht zuverlaessig selbst — sie zeigt das leere Blatt. Bei einer Datei mit nur einem PNG-komprimierten 256er passiert das regelmaessig. Diese Pruefung braucht kein Pillow und kein Windows: Sie liest den ICO-Verzeichniskopf direkt. Damit laeuft sie auch auf der Ampel. """ import os import pytest HIER = os.path.dirname(os.path.abspath(__file__)) REPO = os.path.dirname(os.path.dirname(HIER)) ICON = os.path.join(REPO, "deploy", "worker-windows", "rippy.ico") def _icon_modul(): import sys sys.path.insert(0, HIER) import icon return icon def _groessen(): return _icon_modul().groessen_in(ICON) # Aus icon.py geholt, nicht abgeschrieben: Sonst koennte der Bau eine Groesse # fordern, die dieser Test nicht prueft — oder umgekehrt. PFLICHTGROESSEN = _icon_modul().PFLICHTGROESSEN def test_icon_ist_da(): assert os.path.isfile(ICON), ICON def test_icon_ist_eine_gueltige_ico(): assert _groessen(), "Kein lesbarer ICO-Verzeichniskopf" @pytest.mark.parametrize("kante", PFLICHTGROESSEN) def test_pflichtgroesse_ist_enthalten(kante): """DER Fehler vom 28.08.2026: nur 256x256 drin, alles andere leer.""" vorhanden = _groessen() assert kante in vorhanden, ( "%dx%d fehlt in rippy.ico (drin: %s). Windows zeigt an dieser Stelle " "ein leeres Blatt. Abhilfe: python packaging/windows/icon.py" % (kante, kante, vorhanden) ) def test_eine_einzige_groesse_reicht_nie(): """Der Zustand, in dem die Datei war. Als eigener Test, damit die Fehlermeldung die Ursache nennt und nicht nur eine fehlende Zahl.""" assert len(_groessen()) > 1, ( "rippy.ico enthaelt nur EINE Groesse — genau der Zustand, der zu den " "leeren Symbolen auf Desktop, im Startmenue und in der Taskleiste " "gefuehrt hat." )