예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
    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))
예제 #6
0
    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)