#!/usr/bin/env python3
"""
Test script to check reports redirect issues
"""

import os
import sys
import django

# Setup Django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'branch_system.settings_production')
django.setup()

from django.test import Client
from django.contrib.auth import get_user_model

def test_reports_urls():
    """Test reports URLs to identify redirect issues"""
    
    User = get_user_model()
    
    # Create a test client
    client = Client()
    
    # Try to get admin user
    try:
        admin_user = User.objects.get(email='admin@branchbusinessadvance.com')
        print(f"✓ Found admin user: {admin_user.email}")
    except User.DoesNotExist:
        print("❌ Admin user not found")
        return
    
    # Login as admin
    login_success = client.login(email='admin@branchbusinessadvance.com', password='admin123')
    if not login_success:
        print("❌ Failed to login as admin")
        return
    
    print("✓ Successfully logged in as admin")
    
    # Test reports URLs
    reports_urls = [
        '/reports/',
        '/reports/loan-analytics/',
        '/reports/api/report-data/',
    ]
    
    for url in reports_urls:
        print(f"\nTesting URL: {url}")
        try:
            response = client.get(url)
            print(f"  Status Code: {response.status_code}")
            print(f"  Content Type: {response.get('Content-Type', 'N/A')}")
            
            if response.status_code == 302:  # Redirect
                print(f"  Redirect Location: {response.get('Location', 'N/A')}")
            elif response.status_code == 200:
                print(f"  Response Length: {len(response.content)} bytes")
            else:
                print(f"  Error: {response.status_code}")
                
        except Exception as e:
            print(f"  Error: {e}")
    
    # Test loan analytics report generation
    print("\nTesting loan analytics report generation...")
    try:
        response = client.get('/reports/loan-analytics/report/', {
            'action': 'view',
            'start_date': '2024-01-01',
            'end_date': '2024-12-31'
        })
        print(f"  Status Code: {response.status_code}")
        print(f"  Content Type: {response.get('Content-Type', 'N/A')}")
        
        if response.status_code == 302:
            print(f"  Redirect Location: {response.get('Location', 'N/A')}")
        elif response.status_code == 200:
            print(f"  Response Length: {len(response.content)} bytes")
        else:
            print(f"  Error: {response.status_code}")
            
    except Exception as e:
        print(f"  Error: {e}")

if __name__ == "__main__":
    test_reports_urls() 