test_template.py 1.9 KB

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