def test_send_email_verification_sendgrid_error(
        mock_send_email_using_sendgrid):
    mock_send_email_using_sendgrid.side_effect = AttributeError

    with mock.patch('logic.attestation_service.session', dict()):
        with pytest.raises(EmailVerificationError) as service_err:
            VerificationService.send_email_verification('*****@*****.**')

    assert(str(service_err.value)) == \
        'Could not send verification code. Please try again shortly.'
예제 #2
0
def test_send_email_verification(mock_datetime,
                                 mock_send_email_using_sendgrid):
    mock_send_email_using_sendgrid.return_value = True

    now = datetime.datetime.utcnow()
    expire_in = datetime.timedelta(minutes=30)
    mock_datetime.datetime.utcnow.return_value = now
    mock_datetime.timedelta.return_value = expire_in

    email = '*****@*****.**'
    with mock.patch('logic.attestation_service.session', dict()) as session:
        response = VerificationService.send_email_verification(email)
        assert isinstance(response, VerificationServiceResponse)
        assert 'email_attestation' in session
        assert len(session['email_attestation']['code']) == 6
        assert session['email_attestation']['expiry'] == now + expire_in
        assert check_password_hash(session['email_attestation']['email'],
                                   email)