#!/usr/bin/env python3 """ Test script to demonstrate the modified fetch_folder_emails function that uses database dates for intelligent email fetching. """ from src.database import SessionLocal, get_latest_email_date from src.zoho_client import ZohoClient def test_fetch_with_database(): """Test the modified fetch function with database integration.""" # Create database session db = SessionLocal() try: # Create Zoho client client = ZohoClient() # Example account email (replace with actual) account_email = client.email print("=== Testing fetch_folder_emails with database integration ===") # Check what's the latest date in database latest_date = get_latest_email_date(db, account_email, "INBOX") print(f"Latest email date in database: {latest_date}") # Fetch emails using the new function emails = client.fetch_folder_emails( folder="INBOX", max_results=10, days_back=30, # Fallback if no database date db_session=db, account_email=account_email, ) print(f"Fetched {len(emails)} emails") # Display first few emails for i, email in enumerate(emails[:3]): print(f"\nEmail {i + 1}:") print(f" Subject: {email.get('subject', 'No subject')}") print(f" From: {email.get('from', 'Unknown')}") print(f" Date: {email.get('date', 'Unknown')}") client.close() except Exception as e: print(f"Error: {e}") finally: db.close() if __name__ == "__main__": test_fetch_with_database()