test_template.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from redmail import EmailSender
  2. import pytest
  3. import pandas as pd
  4. from convert import remove_extra_lines
  5. from getpass import getpass, getuser
  6. from platform import node
  7. def test_template(tmpdir):
  8. html_templates = tmpdir.mkdir("html_tmpl")
  9. html_templates.join("example.html").write("""<h1>Hi {{ friend }},</h1><p>have you checked this open source project '{{ project_name }}'?</p><p>- {{ sender.full_name }}</p>""")
  10. expected_html = f"<h1>Hi Jack,</h1><p>have you checked this open source project 'RedMail'?</p><p>- Me</p>\n"
  11. text_templates = tmpdir.mkdir("text_tmpl")
  12. text_templates.join("example.txt").write("""Hi {{ friend }}, \nhave you checked this open source project '{{ project_name }}'? \n- {{ sender.full_name }}""")
  13. expected_text = f"Hi Jack, \nhave you checked this open source project 'RedMail'? \n- Me\n"
  14. sender = EmailSender(server=None, port=1234)
  15. sender.set_template_paths(
  16. html=str(html_templates),
  17. text=str(text_templates),
  18. )
  19. msg = sender.get_message(
  20. sender="me@gmail.com",
  21. receiver="you@gmail.com",
  22. subject="Some news",
  23. html_template='example.html',
  24. text_template='example.txt',
  25. body_params={"friend": "Jack", 'project_name': 'RedMail'}
  26. )
  27. assert "multipart/alternative" == msg.get_content_type()
  28. #text = remove_extra_lines(msg.get_payload()[0].get_payload()).replace("=20", "").replace('"3D', "")
  29. text = remove_extra_lines(msg.get_payload()[0].get_payload()).replace("=20", "").replace('"3D', "")
  30. html = remove_extra_lines(msg.get_payload()[1].get_payload()).replace("=20", "").replace('"3D', "")
  31. assert expected_html == html
  32. assert expected_text == text