From 4adbcebc6f38f45ef100b0d2dfb4ae3aae0f683c Mon Sep 17 00:00:00 2001 From: Adam Shimali Date: Tue, 15 Mar 2016 16:58:26 +0000 Subject: [PATCH] Do not send email in case of invite. The user does not have to validate the email token, but it was still being sent. --- app/main/views/register.py | 7 ++++--- tests/app/main/views/test_accept_invite.py | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/main/views/register.py b/app/main/views/register.py index f9d0fa47c..2893fe8b6 100644 --- a/app/main/views/register.py +++ b/app/main/views/register.py @@ -49,7 +49,7 @@ def register_from_invite(): if form.validate_on_submit(): if form.service.data != invited_user['service'] or form.email_address.data != invited_user['email_address']: abort(400) - registered = _do_registration(form) + registered = _do_registration(form, send_email=False) if registered: return redirect(url_for('main.verify')) else: @@ -61,7 +61,7 @@ def register_from_invite(): return render_template('views/register-from-invite.html', email_address=invited_user['email_address'], form=form) -def _do_registration(form, service=None): +def _do_registration(form, service=None, send_email=True): if users_dao.is_email_unique(form.email_address.data): user = user_api_client.register_user(form.name.data, form.email_address.data, @@ -74,7 +74,8 @@ def _do_registration(form, service=None): # sending codes apart from service unavailable? # at the moment i believe http 500 is fine. users_dao.send_verify_code(user.id, 'sms', user.mobile_number) - users_dao.send_verify_code(user.id, 'email', user.email_address) + if send_email: + users_dao.send_verify_code(user.id, 'email', user.email_address) session['expiry_date'] = str(datetime.now() + timedelta(hours=1)) session['user_details'] = {"email": user.email_address, "id": user.id} return True diff --git a/tests/app/main/views/test_accept_invite.py b/tests/app/main/views/test_accept_invite.py index f656e6bc1..e38f150ec 100644 --- a/tests/app/main/views/test_accept_invite.py +++ b/tests/app/main/views/test_accept_invite.py @@ -212,6 +212,7 @@ def test_cancelled_invited_user_accepts_invited_redirect_to_cancelled_invitation def test_new_user_accept_invite_completes_new_registration_redirects_to_verify(app_, service_one, sample_invite, + api_user_active, mock_check_invite_token, mock_dont_get_user_by_email, mock_register_user, @@ -250,6 +251,9 @@ def test_new_user_accept_invite_completes_new_registration_redirects_to_verify(a assert response.status_code == 302 assert response.location == expected_redirect_location + from unittest.mock import ANY + mock_send_verify_code.assert_called_once_with(ANY, 'sms', data['mobile_number']) + mock_register_user.assert_called_with(data['name'], data['email_address'], data['mobile_number'],