console_mock.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import logging
  2. from typing import Optional
  3. from core.base import EmailProvider
  4. logger = logging.getLogger()
  5. class ConsoleMockEmailProvider(EmailProvider):
  6. """A simple email provider that logs emails to console, useful for testing"""
  7. async def send_email(
  8. self,
  9. to_email: str,
  10. subject: str,
  11. body: str,
  12. html_body: Optional[str] = None,
  13. *args,
  14. **kwargs,
  15. ) -> None:
  16. logger.info(
  17. f"""
  18. -------- Email Message --------
  19. To: {to_email}
  20. Subject: {subject}
  21. Body:
  22. {body}
  23. -----------------------------
  24. """
  25. )
  26. async def send_verification_email(
  27. self, to_email: str, verification_code: str, *args, **kwargs
  28. ) -> None:
  29. logger.info(
  30. f"""
  31. -------- Email Message --------
  32. To: {to_email}
  33. Subject: Please verify your email address
  34. Body:
  35. Verification code: {verification_code}
  36. -----------------------------
  37. """
  38. )
  39. async def send_password_reset_email(
  40. self, to_email: str, reset_token: str, *args, **kwargs
  41. ) -> None:
  42. logger.info(
  43. f"""
  44. -------- Email Message --------
  45. To: {to_email}
  46. Subject: Password Reset Request
  47. Body:
  48. Reset token: {reset_token}
  49. -----------------------------
  50. """
  51. )