Skip to content
Snippets Groups Projects
Commit d0236650 authored by Bjarke Madsen's avatar Bjarke Madsen
Browse files

Fix tests not caught failing due to use of threading

parent d9d373be
No related branches found
No related tags found
No related merge requests found
...@@ -6,6 +6,15 @@ from compendium_v2.db.auth_model import User ...@@ -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 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): def decode_message(msg: MIMEMultipart):
message: List[MIMEText] = msg.get_payload() message: List[MIMEText] = msg.get_payload()
text: MIMEText = message[0] text: MIMEText = message[0]
...@@ -30,10 +39,15 @@ def test_signup_email_admin(app, mocked_admin_user, mocker): ...@@ -30,10 +39,15 @@ def test_signup_email_admin(app, mocked_admin_user, mocker):
def _send_mail(*args, **kwargs): def _send_mail(*args, **kwargs):
_msg = args[-1] _msg = args[-1]
decoded = decode_message(_msg) 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' message = 'testname has just signed up with the email testmail321@email.com and provider ID testsub'
assert decoded == message assert decoded == message
mocker.patch('compendium_v2.email._send_mail', _send_mail) mocker.patch('compendium_v2.email._send_mail', _send_mail)
mocker.patch('threading.Thread', MockedThread)
with test_user(app) as user: with test_user(app) as user:
send_admin_signup_notification(user) send_admin_signup_notification(user)
...@@ -42,9 +56,14 @@ def test_signup_email_user(app, mocker): ...@@ -42,9 +56,14 @@ def test_signup_email_user(app, mocker):
def _send_mail(*args, **kwargs): def _send_mail(*args, **kwargs):
_msg = args[-1] _msg = args[-1]
_from = _msg['From']
_to = _msg['To']
assert _from == 'fakesender123@test.local'
assert _to == 'testmail321@email.com'
decoded = decode_message(_msg) decoded = decode_message(_msg)
assert len(decoded) > 50 # check that there's a message assert len(decoded) > 50 # check that there's a message
mocker.patch('compendium_v2.email._send_mail', _send_mail) mocker.patch('compendium_v2.email._send_mail', _send_mail)
mocker.patch('threading.Thread', MockedThread)
with test_user(app) as user: with test_user(app) as user:
send_user_signup_notification(user, 'testname') send_user_signup_notification(user, 'testname')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment