fix(backend): CI war seit mehreren Commits rot - realer Bug + veraltete Tests
CI / backend-tests (push) Failing after 2m10s
CI / frontend-build (push) Failing after 14s

Wichtigster Fund: mein eigener CI-Check hat nur den zuletzt aktualisierten
Task angeschaut statt beide Jobs (backend-tests/frontend-build) einzeln zu
prüfen - dadurch ist die tatsächlich rote backend-tests-Pipeline seit
mehreren Commits unbemerkt geblieben (auch schon deployed).

Echter Bug (von mir eingeführt in SEARCH-002): /suche filterte auf
Objektposition.status, das Feld heißt aber ist_status - AttributeError bei
jeder Materialsuche.

5 veraltete Testerwartungen korrigiert (Logik in dashboard.py ist seit
längerem korrekt und dokumentiert, Tests wurden nie nachgezogen):
"noch_nie_kontrolliert" gilt laut _kategorie_und_gruende() IMMER zusätzlich
zu jedem anderen Grund - test_dashboard.py/test_mangel.py/
test_fahrzeugdetails.py prüften teils das Gegenteil.

1 Typo-Bug in test_kontrolle.py (UUID != str-Vergleich, immer falsch).

Offen/nicht geklärt: test_stammdaten.py::test_fach_verwendung_und_ersetzen_
fuehrt_zusammen (KeyError 'id' bei Fach-Merge-Response) - ohne lokale
Testausführung nicht sicher diagnostizierbar, braucht echten pytest-Lauf.

Nebenbei: FOUND-009/FOUND-011 im Backlog korrigiert (CI existiert bereits
unter .gitea/, vorheriger Abgleich hatte nur .github/ geprüft).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
This commit is contained in:
2026-09-08 09:56:01 +02:00
co-authored by Claude Sonnet 5
parent 28d8b2957d
commit 7a3fd7acda
6 changed files with 22 additions and 11 deletions
+6 -2
View File
@@ -77,7 +77,9 @@ async def test_in_wartung_macht_objekt_nicht_einsatzbereit(
)
body = response.json()
assert body["nicht_einsatzbereit"] == 1
assert body["details"][0]["gruende"] == ["in_wartung"]
# Objekt wurde in diesem Test nie kontrolliert - "noch_nie_kontrolliert"
# gilt laut _kategorie_und_gruende() zusätzlich zu jedem anderen Grund.
assert body["details"][0]["gruende"] == ["in_wartung", "noch_nie_kontrolliert"]
@pytest.mark.asyncio
@@ -96,7 +98,9 @@ async def test_ueberfaellige_hu_macht_objekt_nicht_einsatzbereit_und_erscheint_i
bereitschaft = await client.get(
"/api/v1/dashboard/einsatzbereitschaft", headers=auth_header(verantwortlicher_token)
)
assert bereitschaft.json()["details"][0]["gruende"] == ["hu_uvv_ueberfaellig"]
# Objekt wurde in diesem Test nie kontrolliert - "noch_nie_kontrolliert"
# gilt laut _kategorie_und_gruende() zusätzlich zu jedem anderen Grund.
assert bereitschaft.json()["details"][0]["gruende"] == ["hu_uvv_ueberfaellig", "noch_nie_kontrolliert"]
prueftermine = await client.get("/api/v1/dashboard/prueftermine", headers=auth_header(verantwortlicher_token))
body = prueftermine.json()