79 lines
3.1 KiB
Python
79 lines
3.1 KiB
Python
#!/usr/bin/env python3.11
|
|
"""
|
|
Schneller Test für das Admin-Dashboard ohne Server
|
|
"""
|
|
|
|
from app import app
|
|
from models import User, get_cached_session
|
|
from flask_login import login_user
|
|
|
|
def test_admin_dashboard_direct():
|
|
"""Testet das Admin-Dashboard direkt"""
|
|
|
|
print("=== DIREKTER ADMIN DASHBOARD TEST ===")
|
|
|
|
with app.app_context():
|
|
try:
|
|
# Admin-Benutzer finden
|
|
with get_cached_session() as session:
|
|
admin_user = session.query(User).filter(User.role == 'admin').first()
|
|
|
|
if not admin_user:
|
|
print("❌ Kein Admin-Benutzer gefunden!")
|
|
return False
|
|
|
|
print(f"✅ Admin-Benutzer gefunden: {admin_user.username}")
|
|
|
|
# Test mit simuliertem Login
|
|
with app.test_client() as client:
|
|
with client.session_transaction() as sess:
|
|
sess['_user_id'] = str(admin_user.id)
|
|
sess['_fresh'] = True
|
|
|
|
# Admin-Dashboard aufrufen
|
|
response = client.get('/admin/')
|
|
print(f"Status: {response.status_code}")
|
|
|
|
if response.status_code == 200:
|
|
print("✅ SUCCESS: Admin-Dashboard lädt erfolgreich!")
|
|
print(f"Content-Length: {len(response.get_data())} Bytes")
|
|
|
|
# Prüfe, ob wichtige Inhalte vorhanden sind
|
|
content = response.get_data(as_text=True)
|
|
if "Admin-Dashboard" in content:
|
|
print("✅ Dashboard-Titel gefunden")
|
|
if "Benutzerverwaltung" in content:
|
|
print("✅ Benutzer-Tab gefunden")
|
|
if "Drucker-Steckdosen" in content:
|
|
print("✅ Drucker-Tab gefunden")
|
|
|
|
return True
|
|
|
|
elif response.status_code == 302:
|
|
print(f"❌ Redirect zu: {response.headers.get('Location', 'Unknown')}")
|
|
return False
|
|
|
|
elif response.status_code == 500:
|
|
print("❌ 500 Internal Server Error")
|
|
error_data = response.get_data(as_text=True)
|
|
print(f"Error: {error_data[:500]}...")
|
|
return False
|
|
|
|
else:
|
|
print(f"❌ Unerwarteter Status: {response.status_code}")
|
|
return False
|
|
|
|
except Exception as e:
|
|
print(f"❌ FEHLER: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
return False
|
|
|
|
if __name__ == "__main__":
|
|
success = test_admin_dashboard_direct()
|
|
if success:
|
|
print("\n🎉 ADMIN-DASHBOARD FUNKTIONIERT!")
|
|
else:
|
|
print("\n❌ ADMIN-DASHBOARD HAT PROBLEME!")
|
|
|
|
exit(0 if success else 1) |