#!/usr/bin/env python3
"""
Test profile page access after UserSession import fix
"""

import requests
import re

def test_profile_access():
    base_url = "http://localhost:8002"
    session = requests.Session()
    
    print("1. Getting login page...")
    response = session.get(f"{base_url}/auth/login")
    if response.status_code != 200:
        print(f"❌ Login page failed: {response.status_code}")
        return False
    
    # Extract CSRF token
    csrf_match = re.search(r'name="csrfmiddlewaretoken" value="([^"]+)"', response.text)
    if not csrf_match:
        print("❌ Could not find CSRF token")
        return False
    
    csrf_token = csrf_match.group(1)
    print(f"✓ Got CSRF token")
    
    print("2. Logging in...")
    login_data = {
        'csrfmiddlewaretoken': csrf_token,
        'email': 'admin@adtlas.tv',
        'password': 'admin123'
    }
    
    response = session.post(f"{base_url}/auth/login", data=login_data, allow_redirects=True)
    
    if response.status_code != 200:
        print(f"❌ Login failed: {response.status_code}")
        return False
    
    print("✓ Login successful")
    
    print("3. Accessing profile page...")
    response = session.get(f"{base_url}/accounts/profile")
    
    if response.status_code == 200:
        print("✓ Profile page accessible - UserSession import fix successful!")
        return True
    elif response.status_code == 500:
        print("❌ Profile page still has 500 error")
        return False
    else:
        print(f"❌ Profile page returned: {response.status_code}")
        return False

if __name__ == "__main__":
    print("=" * 60)
    print("TESTING PROFILE PAGE AFTER USERSESSION IMPORT FIX")
    print("=" * 60)
    
    success = test_profile_access()
    
    print("=" * 60)
    print(f"TEST RESULT: {'SUCCESS' if success else 'FAILED'}")
    print("=" * 60)
