69 lines
2.4 KiB
Python
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) |