test_template.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from redmail import EmailSender
  2. import pytest
  3. import pandas as pd
  4. from convert import remove_email_extra
  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. html_tables = tmpdir.mkdir("html_table_tmpl")
  15. html_tables.join("modest.html").write("""{{ df.to_html() }}""")
  16. text_tables = tmpdir.mkdir("text_table_tmpl")
  17. text_tables.join("pandas.txt").write("""{{ df.to_html() }}""")
  18. sender = EmailSender(host=None, port=1234)
  19. sender.set_template_paths(
  20. html=str(html_templates),
  21. text=str(text_templates),
  22. html_table=str(html_tables),
  23. text_table=str(text_tables),
  24. )
  25. msg = sender.get_message(
  26. sender="me@gmail.com",
  27. receivers=["you@gmail.com"],
  28. subject="Some news",
  29. html_template='example.html',
  30. text_template='example.txt',
  31. body_params={"friend": "Jack", 'project_name': 'RedMail'}
  32. )
  33. assert "multipart/alternative" == msg.get_content_type()
  34. #text = remove_extra_lines(msg.get_payload()[0].get_payload())
  35. text = remove_email_extra(msg.get_payload()[0].get_payload())
  36. html = remove_email_extra(msg.get_payload()[1].get_payload())
  37. assert expected_html == html
  38. assert expected_text == text