diff --git a/test/test_send_mail.py b/test/test_send_mail.py index 01bb6a755bbf47f25cd111d45685016637eb0373..b35abfe7ddfaf78b1581f95e5ba613e2e1a21f61 100644 --- a/test/test_send_mail.py +++ b/test/test_send_mail.py @@ -6,6 +6,15 @@ from compendium_v2.db.auth_model import User from compendium_v2.email import send_admin_signup_notification, send_user_signup_notification +class MockedThread(object): + def __init__(self, target, args): + self.target = target + self.args = args + + def start(self): + self.target(*self.args) + + def decode_message(msg: MIMEMultipart): message: List[MIMEText] = msg.get_payload() text: MIMEText = message[0] @@ -30,10 +39,15 @@ def test_signup_email_admin(app, mocked_admin_user, mocker): def _send_mail(*args, **kwargs): _msg = args[-1] decoded = decode_message(_msg) + _from = _msg['From'] + _to = _msg['To'] + assert _from == 'fakesender123@test.local' + assert _to == 'testemail123@email.local' message = 'testname has just signed up with the email testmail321@email.com and provider ID testsub' assert decoded == message mocker.patch('compendium_v2.email._send_mail', _send_mail) + mocker.patch('threading.Thread', MockedThread) with test_user(app) as user: send_admin_signup_notification(user) @@ -42,9 +56,14 @@ def test_signup_email_user(app, mocker): def _send_mail(*args, **kwargs): _msg = args[-1] + _from = _msg['From'] + _to = _msg['To'] + assert _from == 'fakesender123@test.local' + assert _to == 'testmail321@email.com' decoded = decode_message(_msg) assert len(decoded) > 50 # check that there's a message mocker.patch('compendium_v2.email._send_mail', _send_mail) + mocker.patch('threading.Thread', MockedThread) with test_user(app) as user: send_user_signup_notification(user, 'testname')