Files
Projektarbeit-MYP/backend/test_admin_live.py

69 lines
2.4 KiB
Python

#!/usr/bin/env python3.11
"""
Live-Test für das Admin-Dashboard über HTTP
"""
import requests
import sys
def test_admin_dashboard():
"""Testet das Admin-Dashboard über HTTP"""
base_url = "http://127.0.0.1:5000"
print("=== LIVE ADMIN DASHBOARD TEST ===")
# Session für Cookies
session = requests.Session()
try:
# 1. Test ohne Login
print("\n1. Test ohne Login:")
response = session.get(f"{base_url}/admin/")
print(f" Status: {response.status_code}")
if response.status_code == 302:
print(f" Redirect zu: {response.headers.get('Location', 'Unknown')}")
# 2. Login versuchen
print("\n2. Login-Versuch:")
login_data = {
'username': 'admin',
'password': 'admin123'
}
# Erst Login-Seite aufrufen für CSRF-Token
login_page = session.get(f"{base_url}/auth/login")
print(f" Login-Seite Status: {login_page.status_code}")
# Login durchführen
login_response = session.post(f"{base_url}/auth/login", data=login_data)
print(f" Login Status: {login_response.status_code}")
if login_response.status_code == 302:
print(f" Login Redirect: {login_response.headers.get('Location', 'Unknown')}")
# 3. Admin-Dashboard nach Login
print("\n3. Admin-Dashboard nach Login:")
admin_response = session.get(f"{base_url}/admin/")
print(f" Status: {admin_response.status_code}")
if admin_response.status_code == 200:
print(" ✅ SUCCESS: Admin-Dashboard lädt erfolgreich!")
print(f" Content-Length: {len(admin_response.text)} Zeichen")
elif admin_response.status_code == 302:
print(f" Redirect zu: {admin_response.headers.get('Location', 'Unknown')}")
elif admin_response.status_code == 500:
print(" ❌ ERROR: 500 Internal Server Error")
print(f" Response: {admin_response.text[:500]}...")
else:
print(f" Unerwarteter Status: {admin_response.status_code}")
except Exception as e:
print(f"\n❌ FEHLER: {e}")
return False
return admin_response.status_code == 200
if __name__ == "__main__":
success = test_admin_dashboard()
sys.exit(0 if success else 1)