From 5171a5ecab4e423b90cd0e7da3343b5a9c33b282 Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Thu, 23 Jul 2026 14:28:12 +0200 Subject: [PATCH] Backendstart repariert: 204-Route mit future-annotations Derselbe Fehler wie damals beim Dashboard. In package_types.py stand "from __future__ import annotations"; dadurch wird "-> None" zu einer Zeichenkette, die FastAPI zu NoneType aufloest und als Antwortmodell wertet - zusammen mit 204 bricht der Aufbau der Anwendung ab, und der Container kommt gar nicht erst hoch. Der Import ist raus, mit Begruendung im Quelltext. Die uebrigen Router mit diesem Import (branding, dashboard, transfer) sind geprueft: Sie geben in 204-Routen Response zurueck. Damit es nicht ein drittes Mal erst am Container auffaellt, importiert ein Test jetzt app.main. Genau dabei loest der Fehler aus - der Test deckt damit auch jede kuenftige Route ab. Co-Authored-By: Claude Opus 4.8 --- backend/app/routers/package_types.py | 7 ++++++- backend/tests/test_app_startet.py | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 backend/tests/test_app_startet.py diff --git a/backend/app/routers/package_types.py b/backend/app/routers/package_types.py index c508247..c6203e8 100644 --- a/backend/app/routers/package_types.py +++ b/backend/app/routers/package_types.py @@ -6,7 +6,12 @@ Mehrzahl. Deshalb zieht ein Umbenennen die Artikel mit: Wird "Glas" zu mehr gibt, und fielen stillschweigend auf die Einzahl zurück. """ -from __future__ import annotations +# ACHTUNG: Hier steht bewusst KEIN ``from __future__ import annotations``. +# Damit wuerde ``-> None`` unten zu einer Zeichenkette, die FastAPI zu +# ``NoneType`` aufloest und als Antwortmodell wertet - zusammen mit 204 (das +# keinen Rumpf haben darf) bricht dann der Start des ganzen Dienstes ab. +# Wer den Import doch braucht, gibt in den 204-Routen ``Response`` zurueck, +# so wie es branding.py und dashboard.py tun. from fastapi import APIRouter, Depends, HTTPException, status from sqlalchemy import func diff --git a/backend/tests/test_app_startet.py b/backend/tests/test_app_startet.py new file mode 100644 index 0000000..bdb77a3 --- /dev/null +++ b/backend/tests/test_app_startet.py @@ -0,0 +1,18 @@ +"""Faengt Fehler ab, die sonst erst beim Start des Containers auffallen. + +Zweimal hat ein 204-Endpunkt den ganzen Dienst am Hochfahren gehindert: Steht in +einem Router ``from __future__`` mit ``annotations``, wird ``-> None`` zu einer +Zeichenkette, die FastAPI zu ``NoneType`` aufloest und als Antwortmodell wertet - +zusammen mit "204 darf keinen Rumpf haben" bricht der Aufbau der Anwendung ab. + +Das passiert bereits beim Importieren von ``app.main``, nicht erst im Betrieb. +Deshalb genuegt hier der Import. Er kostet fast nichts, deckt jede kuenftige +Route mit ab - und anders als eine Textpruefung im Quelltext kann er weder an +Kommentaren hangenbleiben noch Hilfsfunktionen fuer Routen halten. +""" + + +def test_anwendung_laesst_sich_aufbauen(): + from app.main import app + + assert app.routes