Phase 12: Test-Suite (30 pytest-Tests) + CLAUDE.md aktualisiert
tests/: conftest.py - minimale Env-Vars + sys.path-Setup test_auth.py - Magic-Token + JWT Round-Trip (4 Tests) test_audit.py - diff() + _to_json() Helper (8 Tests) test_models.py - Pydantic-Validierung (7 Tests) test_source_meta.py - Single Source of Truth Konsistenz (7 Tests) test_imports.py - alle Backend-Module importierbar (4 Tests) requirements-dev.txt: pytest, ftfy, pyflakes Tests sind reine Unit-Tests (kein DB-Zugriff, kein HTTP-Server), laufen in <0.5s, geben sofortiges Catch-Net fuer Syntax/Import-Bugs. Aufruf: PYTHONPATH=src ./venv/bin/python -m pytest tests/ -v CLAUDE.md erweitert um: - Sektion Tests (Framework, Pfad, Ausfuehrung) - Sektion Phasen-Historie (alle 12 Phasen der Aufraeum-Aktion 2026-05-09 mit kurzer Erklaerung)
Dieser Commit ist enthalten in:
46
CLAUDE.md
46
CLAUDE.md
@@ -193,3 +193,49 @@ shared:
|
||||
locked: "diff anschauen, ueberlegen ob die Monitor-Aenderung im Verwaltungs-Fork sinnvoll ist"
|
||||
```
|
||||
|
||||
## Tests
|
||||
|
||||
```yaml
|
||||
tests:
|
||||
framework: pytest
|
||||
pfad: tests/
|
||||
ausfuehren: "PYTHONPATH=src ./venv/bin/python -m pytest tests/ -v"
|
||||
install: "./venv/bin/pip install -r requirements-dev.txt"
|
||||
|
||||
abdeckung:
|
||||
test_auth.py: Magic-Token + JWT Round-Trip
|
||||
test_audit.py: diff() + _to_json() Helper
|
||||
test_models.py: Pydantic-Validierung (MagicLink, Org, License, User)
|
||||
test_source_meta.py: Single Source of Truth Konsistenz
|
||||
test_imports.py: alle Backend-Module importierbar (Syntax-Catchnet)
|
||||
|
||||
philosophie:
|
||||
- reine Unit-Tests, kein DB-Zugriff, kein HTTP-Server
|
||||
- schnell (<1 Sekunde fuer das ganze Set)
|
||||
- sollten lokal vor jedem Commit laufen
|
||||
```
|
||||
|
||||
## Phasen-Historie (Aufraeum-Aktion 2026-05-09)
|
||||
|
||||
```yaml
|
||||
phasen:
|
||||
P0: Verwaltungs-Staging mit develop-Branch + Auto-Deploy + Promote-UI
|
||||
P0i: Login-Auth komplett auf Magic-Link (Passwort entfernt)
|
||||
P1: Backend-Hygiene Quellen (sys.path-Hack weg, Mojibake gefixt, DDL ausgelagert)
|
||||
P2: Health-Check tenant-faehig + source_health_history (Verlauf bleibt)
|
||||
P3a: Toast-System statt alert/confirm
|
||||
P3b: GET /api/sources/meta - Single Source of Truth fuer Kategorien/Typen
|
||||
P3c: Kundenquellen-Tab Filter+Sort+Bulk-Promote
|
||||
P4: Stats-Bar + Health-Badge inline + Letzter-Treffer-Spalte
|
||||
P5: Audit-Spur pro Quelle (ausklappbares Modal)
|
||||
P6: Verwendungs-Sicht: Aktivitaet 7d/30d + Tenant-Sperren
|
||||
P7: scripts/sync_shared.py + Lock-Mechanismus + Mojibake-fail-safe
|
||||
P8a: Pre-Commit-Hook fuer src/shared/ Drift
|
||||
P8b: Audit-Log UI um resource_id-Filter
|
||||
P8c: Monitor-Repo Mojibake gefixt (source_suggester + source_health)
|
||||
P9: Code-Hygiene - alle pyflakes-Issues bereinigt
|
||||
P10: Bug 2 Buckelwal-Diagnose: Lagentitel-Eigennamen als Pflicht-Keywords
|
||||
P11: Backup-Rotation via Cron (KEEP=5 letzte .bak-Files)
|
||||
P12: Test-Suite (pytest, 30 Tests) + Doku
|
||||
```
|
||||
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren