diff --git a/test/test_send_mail.py b/test/test_send_mail.py index e3ae5a9e448b4e1a2e11ab74d1624d64b49543d0..01bb6a755bbf47f25cd111d45685016637eb0373 100644 --- a/test/test_send_mail.py +++ b/test/test_send_mail.py @@ -1,8 +1,18 @@ +from typing import List +from email.mime.multipart import MIMEMultipart +from email.mime.text import MIMEText # noqa: F401 from contextlib import contextmanager from compendium_v2.db.auth_model import User from compendium_v2.email import send_admin_signup_notification, send_user_signup_notification +def decode_message(msg: MIMEMultipart): + message: List[MIMEText] = msg.get_payload() + text: MIMEText = message[0] + decoded = text.get_payload(decode=True).decode('utf-8') + return decoded + + @contextmanager def test_user(app): with app.app_context(): @@ -18,8 +28,10 @@ def test_user(app): def test_signup_email_admin(app, mocked_admin_user, mocker): def _send_mail(*args, **kwargs): + _msg = args[-1] + decoded = decode_message(_msg) message = 'testname has just signed up with the email testmail321@email.com and provider ID testsub' - assert args[-1].split('\n\n')[-1] == message + assert decoded == message mocker.patch('compendium_v2.email._send_mail', _send_mail) with test_user(app) as user: @@ -29,7 +41,9 @@ def test_signup_email_admin(app, mocked_admin_user, mocker): def test_signup_email_user(app, mocker): def _send_mail(*args, **kwargs): - assert len(args[-1].split('\n\n', 1)[-1]) > 50 # check that there's a message + _msg = args[-1] + decoded = decode_message(_msg) + assert len(decoded) > 50 # check that there's a message mocker.patch('compendium_v2.email._send_mail', _send_mail) with test_user(app) as user: