invy/backend/test_whatsapp_send.py
dvirlabs 9b6f053d86
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Fix SSL/TLS handshake failure - simplify httpx client creation
- Removed manual SSL context creation that was causing handshake failures
- Simplified create_http_client() to let httpx handle SSL negotiation directly
- Disabled HTTP/2 for better compatibility
- Added proper connection limits and timeouts
- Updated all three client instantiations to await the async function
- Improved overall SSL/TLS stability for Meta API connections
2026-05-13 13:26:51 +03:00

95 lines
2.4 KiB
Python

#!/usr/bin/env python3
"""
Test script to send WhatsApp message via template
Usage: python test_whatsapp_send.py
"""
import asyncio
import os
import sys
import logging
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
# Configure logging
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
# Import after logging is configured
from database import SessionLocal
from whatsapp import WhatsAppService
async def test_send_whatsapp():
"""Test sending a WhatsApp message using hina_invitation template"""
db = SessionLocal()
try:
# Initialize WhatsApp service
service = WhatsAppService(db=db)
# Phone number to test (Israeli format)
phone = "0504370045"
# Template parameters for hina_invitation
params = {
"contact_name": "דוד",
"event_date": "17/05",
"event_date_day": "17",
"venue": "אולם הגן",
"location": "ירושלים",
"reception_time": "18:30",
"ceremony_time": "19:00",
"dinner_time": "20:00",
"bride_name": "ורד",
"groom_name": "דביר",
"event_id": "f3122a7d-1d7c-4cc1-955d-1c6b7358bd25"
}
print("\n" + "="*80)
print("TESTING WHATSAPP MESSAGE SEND")
print("="*80)
print(f"Phone: {phone}")
print(f"Template: hina_invitation")
print(f"Parameters: {params}")
print("="*80 + "\n")
# Send the message
logger.info(f"Attempting to send WhatsApp message to {phone}")
result = await service.send_by_template_key(
template_key="wedding_invitation_by_vered",
to_phone=phone,
params=params
)
print("\n" + "="*80)
print("SUCCESS!")
print("="*80)
print(f"Result: {result}")
print("="*80 + "\n")
return result
except Exception as e:
print("\n" + "="*80)
print("ERROR!")
print("="*80)
print(f"Error: {str(e)}")
import traceback
traceback.print_exc()
print("="*80 + "\n")
raise
finally:
db.close()
if __name__ == "__main__":
asyncio.run(test_send_whatsapp())