#!/usr/bin/env python
"""Test IMAP connection - run via: python manage.py shell < test_imap.py"""
import base64
import pytest
from modules.email.models import EmailAccount
from modules.email.imap_service import IMAPService


@pytest.mark.django_db
def test_imap_connections():
    """Test IMAP connection for all configured email accounts."""
    for account in EmailAccount.objects.all():
        print(f"\nTesting: {account.email_address}")
        print(f"IMAP: {account.imap_host}:{account.imap_port}")
        
        try:
            password = base64.b64decode(account.encrypted_password.encode()).decode()
            print(f"Decrypted password length: {len(password)}")
            print(f"Decrypted password (first 4 chars): {password[:4]}...")
        except Exception as e:
            print(f"Decrypt error: {e}")
            password = None
        
        if password:
            imap = IMAPService(
                host=account.imap_host,
                port=account.imap_port,
                username=account.email_address,
                password=password,
                ssl=account.use_ssl
            )
            if imap.connect():
                print("IMAP connected!")
                folders = imap.list_folders()
                print(f"Found {len(folders)} folders")
                imap.disconnect()
            else:
                print("IMAP connection failed")
