"""
Quick test to verify LlamaParse integration is working
"""
import sys
import os
sys.path.insert(0, os.path.abspath('.'))

from src.utils.pdf_parser import get_pdf_parser
from src.core.logging import logger

def test_llamaparse():
    """Test if LlamaParse can be instantiated and basic functionality works"""
    try:
        print("=" * 60)
        print("Testing LlamaParse Integration")
        print("=" * 60)
        
        # Test 1: Create parser instance
        print("\n1. Creating PDFParser instance...")
        parser = get_pdf_parser()
        print("   ✓ PDFParser instance created successfully")
        
        # Test 2: Check if parser has required methods
        print("\n2. Checking parser methods...")
        assert hasattr(parser, 'parse_url'), "Missing parse_url method"
        assert hasattr(parser, 'parse_file'), "Missing parse_file method"
        assert hasattr(parser, 'get_text'), "Missing get_text method"
        print("   ✓ All required methods present")
        
        # Test 3: Test with a sample URL (this will actually call LlamaParse API)
        print("\n3. Testing LlamaParse API call...")
        test_url = "https://bankruptcy-dev.dreamztesting.com/storage/assets/sed/17670862171338999457.jpg"
        print(f"   Parsing: {test_url}")
        
        try:
            documents = parser.parse_url(test_url)
            extracted_text = parser.get_text(documents)
            
            if extracted_text and len(extracted_text) > 0:
                print(f"   ✓ LlamaParse SUCCESS: Extracted {len(extracted_text)} characters")
                print(f"   Preview: {extracted_text[:200]}...")
                print("\n" + "=" * 60)
                print("✓ ALL TESTS PASSED - LlamaParse is working correctly!")
                print("=" * 60)
                return True
            else:
                print("   ✗ LlamaParse returned empty text")
                return False
                
        except Exception as e:
            print(f"   ✗ LlamaParse API call failed: {str(e)}")
            print("\n" + "=" * 60)
            print("✗ TEST FAILED - LlamaParse is NOT working")
            print("=" * 60)
            return False
            
    except Exception as e:
        print(f"\n✗ Error: {str(e)}")
        print("\n" + "=" * 60)
        print("✗ TEST FAILED - Error during initialization")
        print("=" * 60)
        return False

if __name__ == "__main__":
    success = test_llamaparse()
    sys.exit(0 if success else 1)
