import sys import os import logging import unittest from unittest.mock import MagicMock, patch # Add current directory to path sys.path.append(os.getcwd()) # Mock html2text before importing app.lib_email sys.modules['html2text'] = MagicMock() # Configure logging logging.basicConfig(level=logging.DEBUG) from app.lib_email import send_email from app.config import settings class TestEmail(unittest.TestCase): def test_send_email_missing_settings(self): print("\nTesting send_email with missing SMTP settings...") # Backup original settings original_smtp = getattr(settings, 'SMTP', {}) # Clear settings settings.SMTP = {} result = send_email( from_email="test@example.com", to_email="test@example.com", subject="Test Email", body_html="
Test
", test=True ) # Restore settings settings.SMTP = original_smtp print(f"Result (should be False): {result}") self.assertFalse(result) def test_send_email_invalid_port(self): print("\nTesting send_email with invalid port...") original_smtp = getattr(settings, 'SMTP', {}) settings.SMTP = { 'server': 'smtp.example.com', 'port': 'invalid', 'username': 'user', 'password': 'pass' } result = send_email( from_email="test@example.com", to_email="test@example.com", subject="Test Email", body_html="Test
", test=True ) settings.SMTP = original_smtp print(f"Result (should be False): {result}") self.assertFalse(result) if __name__ == "__main__": unittest.main()