test_cookbook.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from typing import Union
  2. from textwrap import dedent
  3. from redmail import EmailSender
  4. from convert import remove_email_content_id
  5. def test_distributions():
  6. class DistrSender(EmailSender):
  7. "Send email using pre-defined distribution lists"
  8. def __init__(self, *args, distribution:dict, **kwargs):
  9. super().__init__(*args, **kwargs)
  10. self.distributions = distribution
  11. def get_receivers(self, receiver_list):
  12. if receiver_list:
  13. return self.distributions[receiver_list]
  14. def get_cc(self, receiver_list):
  15. if receiver_list:
  16. return self.distributions[receiver_list]
  17. def get_bcc(self, receiver_list):
  18. if receiver_list:
  19. return self.distributions[receiver_list]
  20. email = DistrSender(
  21. host="localhost",
  22. port=0,
  23. distribution={
  24. 'group1': ["me@example.com", "you@example.com"],
  25. 'group2': ["he@example.com", "she@example.com"],
  26. }
  27. )
  28. msg = email.get_message(
  29. sender="me@example.com",
  30. receivers="group1",
  31. cc="group2",
  32. subject="Some email",
  33. )
  34. assert remove_email_content_id(str(msg)) == dedent("""
  35. from: me@example.com
  36. subject: Some email
  37. to: me@example.com, you@example.com
  38. cc: he@example.com, she@example.com
  39. """)[1:]