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 <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
18
backend/tests/test_app_startet.py
Normal file
18
backend/tests/test_app_startet.py
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user