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