#!/usr/bin/env python
"""
Test script to verify media file access
"""
import os
import sys
import django
from pathlib import Path

# Add the project directory to Python path
BASE_DIR = Path(__file__).resolve().parent
sys.path.insert(0, str(BASE_DIR))

# Set Django settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'branch_system.settings_production')
django.setup()

from django.conf import settings
from django.test import RequestFactory
from utils.middleware import MediaFileMiddleware

def test_media_files():
    """Test if media files are accessible"""
    print("Testing media file access...")
    
    # Check if media directory exists
    media_root = settings.MEDIA_ROOT
    print(f"Media root: {media_root}")
    print(f"Media root exists: {os.path.exists(media_root)}")
    
    # List some media files
    kyc_dir = os.path.join(media_root, 'kyc')
    if os.path.exists(kyc_dir):
        print(f"KYC directory exists: {kyc_dir}")
        for subdir in os.listdir(kyc_dir):
            subdir_path = os.path.join(kyc_dir, subdir)
            if os.path.isdir(subdir_path):
                files = os.listdir(subdir_path)
                print(f"  {subdir}: {len(files)} files")
                if files:
                    print(f"    Sample file: {files[0]}")
    
    # Test middleware
    factory = RequestFactory()
    middleware = MediaFileMiddleware(lambda request: None)
    
    # Test a media file request
    request = factory.get('/media/kyc/id_documents/WhatsApp_Image_2024-10-22_at_14.06.10.jpeg')
    request.user = None  # Anonymous user
    
    try:
        response = middleware(request)
        print(f"Middleware response status: {response.status_code}")
        print(f"Middleware response content type: {response.get('Content-Type', 'Unknown')}")
    except Exception as e:
        print(f"Middleware error: {e}")

if __name__ == '__main__':
    test_media_files() 