test_cookbook.py 1.3 KB

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