def test__send_reset_password_email_with_invalid_recipient_email(self): """ Com: - recipient_email inválido Quando: - Enviamos notificações de resetar a senha Verifcamos: - Que ocorra uma exeção por causa do email inválido para recipient_email """ recipient_email = 'foo@bar' with self.assertRaises(ValueError): send_reset_password_email(recipient_email)
def test_send_reset_password_email(self): """ Com: - Um email válido para: recipient_email = '*****@*****.**' Quando: - Enviamos a notificação de resetar a senha. Verificamos: - Que ``app.utils.send_email`` seja invocado como os parámetros: - recipient = '*****@*****.**' - subject = "Instruções para recuperar sua senha" - html = render_template('email/recover.html', recover_url=recover_url) - Que o valor de retorno da função: send_confirmation_email seja: (True, '') """ recipient_email = '*****@*****.**' ts = utils.get_timed_serializer() token = ts.dumps(recipient_email, salt='recover-key') recover_url = url_for('admin.reset_with_token', token=token, _external=True) with patch('webapp.utils.send_email') as mock: result = send_reset_password_email(recipient_email) expected = (True, '') mock.assert_called_with( recipient_email, "Instruções para recuperar sua senha", render_template('email/recover.html', recover_url=recover_url) ) self.assertEqual(expected, result)
def test_send_reset_password_email(self): """ Com: - Um email válido para: recipient_email = '*****@*****.**' Quando: - Enviamos a notificação de resetar a senha. Verificamos: - Que ``app.utils.send_email`` seja invocado como os parámetros: - recipient = '*****@*****.**' - subject = "Instruções para recuperar sua senha" - html = render_template('email/recover.html', recover_url=recover_url) - Que o valor de retorno da função: send_confirmation_email seja: (True, '') """ recipient_email = '*****@*****.**' ts = get_timed_serializer() token = ts.dumps(recipient_email, salt='recover-key') recover_url = url_for('admin.reset_with_token', token=token, _external=True) result_expected = (True, '') with patch('webapp.utils.utils.send_email', return_value=result_expected) as mock: result = send_reset_password_email(recipient_email) mock.assert_called_with( recipient_email, "Instruções para recuperar sua senha", render_template('email/recover.html', recover_url=recover_url)) self.assertEqual(result_expected, result)
def test_invalid_token_reset_password(self): """ Quando: - current_app.config["SECRET_KEY"] não tem valor Verifcamos: - Que ocorra uma exeção qunado é criado um token com get_timed_serializer ao enviar a notificação de resetar a senha. """ recipient_email = '*****@*****.**' with patch('webapp.notifications.utils') as mock: mock.get_timed_serializer.return_value = URLSafeTimedSerializer( None) expected = "Token inválido" result = send_reset_password_email(recipient_email) self.assertIn(expected, str(result))
def test_invalid_token_reset_password(self): """ Quando: - current_app.config["SECRET_KEY"] não tem valor Verifcamos: - Que ocorra uma exeção qunado é criado um token com get_timed_serializer ao enviar a notificação de resetar a senha. """ recipient_email = '*****@*****.**' with patch('webapp.utils.get_timed_serializer') as mock: mock.return_value = URLSafeTimedSerializer(None) expected = None try: ts = utils.get_timed_serializer() ts.dumps(recipient_email) except Exception, e: expected = (False, 'Invalid Token: %s' % str(e)) result = send_reset_password_email(recipient_email) self.assertEqual(expected, result)