فهرست منبع

test: more tests to increase coverage

Mikael Koli 4 سال پیش
والد
کامیت
3239432050
1فایلهای تغییر یافته به همراه40 افزوده شده و 0 حذف شده
  1. 40 0
      redmail/test/email/test_attachments.py

+ 40 - 0
redmail/test/email/test_attachments.py

@@ -33,6 +33,21 @@ def test_dict_string():
     assert filename == 'data.txt'
     assert to_encoded("Some content") == data.replace('\n', '')
 
+def test_dict_bytes():
+
+    sender = EmailSender(host=None, port=1234)
+    msg = sender.get_message(
+        sender="me@gmail.com",
+        receivers="you@gmail.com",
+        subject="Some news",
+        attachments={'data.bin': bytes(10)}
+    )
+    payload = msg.get_payload(0)
+    filename = payload.get_filename()
+    data = payload.get_payload()
+    assert filename == 'data.bin'
+    assert base64.b64encode(bytes(10)).decode() == data.replace('\n', '')
+
 def test_dict_path(tmpdir):
     file = tmpdir.join("data.txt")
     file.write("Some content")
@@ -109,6 +124,19 @@ def test_dict_dataframe_html():
     assert filename == 'myfile.html'
     assert to_encoded(expected) == data
 
+def test_dict_dataframe_invalid():
+    pytest.importorskip("pandas")
+    import pandas as pd
+
+    sender = EmailSender(host=None, port=1234)
+    with pytest.raises(ValueError):
+        msg = sender.get_message(
+            sender="me@gmail.com",
+            receivers="you@gmail.com",
+            subject="Some news",
+            attachments={'myfile.something': pd.DataFrame({'a': [1,2,3], 'b': ['1', '2', '3']})}
+        )
+
 def test_dict_dataframe_excel_no_error():
     pytest.importorskip("pandas")
     pytest.importorskip("openpyxl")
@@ -158,6 +186,18 @@ def test_dict_matplotlib_no_error():
     assert filename == 'myimg.png'
     assert str(base64.b64encode(bytes_fig), 'ascii') == data.replace('\n', '')
 
+def test_dict_invalid():
+    fig, bytes_fig = get_mpl_fig()
+
+    sender = EmailSender(host=None, port=1234)
+    with pytest.raises(TypeError):
+        msg = sender.get_message(
+            sender="me@gmail.com",
+            receivers="you@gmail.com",
+            subject="Some news",
+            attachments={'myimg.png': sender}
+        )
+
 def test_dict_multiple(tmpdir):
     file1 = tmpdir.join("file_1.txt")
     file1.write("Some content 1")