Ejemplo n.º 1
0
def test_forgot_password_creates_no_activations_when_validation_fails(activation_model):
    request = DummyRequest(method='POST')
    controller = ForgotPasswordController(request)
    controller.form = invalid_form()

    controller.forgot_password()

    assert activation_model.call_count == 0
Ejemplo n.º 2
0
def test_forgot_password_creates_no_activations_when_validation_fails(activation_model,
                                                                      authn_policy):
    request = DummyRequest(method='POST')
    authn_policy.authenticated_userid.return_value = None
    controller = ForgotPasswordController(request)
    controller.form = invalid_form()

    controller.forgot_password()

    assert activation_model.call_count == 0
Ejemplo n.º 3
0
def test_forgot_password_creates_no_activations_when_validation_fails(activation_model,
                                                                      authn_policy):
    request = DummyRequest(method='POST')
    authn_policy.authenticated_userid.return_value = None
    controller = ForgotPasswordController(request)
    controller.form = invalid_form()

    controller.forgot_password()

    assert activation_model.call_count == 0
Ejemplo n.º 4
0
def test_forgot_password_generates_reset_link(reset_link):
    request = DummyRequest(method='POST')
    request.registry.password_reset_serializer = FakeSerializer()
    user = FakeUser(username='******', email='*****@*****.**')
    controller = ForgotPasswordController(request)
    controller.form = form_validating_to({"user": user})

    controller.forgot_password()

    reset_link.assert_called_with(request, "faketoken")
Ejemplo n.º 5
0
def test_forgot_password_sends_mail(reset_mail, authn_policy, mailer):
    request = DummyRequest(method='POST')
    authn_policy.authenticated_userid.return_value = None
    user = FakeUser(username='******', email='*****@*****.**')
    controller = ForgotPasswordController(request)
    controller.form = form_validating_to({"user": user})
    message = reset_mail.return_value

    controller.forgot_password()

    assert message in mailer.outbox
Ejemplo n.º 6
0
def test_forgot_password_generates_reset_link_from_activation(reset_link,
                                                              activation_model,
                                                              authn_policy):
    request = DummyRequest(method='POST')
    authn_policy.authenticated_userid.return_value = None
    user = FakeUser(username='******', email='*****@*****.**')
    controller = ForgotPasswordController(request)
    controller.form = form_validating_to({"user": user})
    activation_model.return_value.code = "abcde12345"

    controller.forgot_password()

    reset_link.assert_called_with(request, "abcde12345")
Ejemplo n.º 7
0
def test_forgot_password_creates_activation_for_user(activation_model,
                                                     authn_policy):
    request = DummyRequest(method='POST')
    authn_policy.authenticated_userid.return_value = None
    activation = activation_model.return_value
    user = FakeUser(username='******', email='*****@*****.**')
    controller = ForgotPasswordController(request)
    controller.form = form_validating_to({"user": user})

    controller.forgot_password()

    activation_model.assert_called_with()
    assert activation in request.db.added
    assert user.activation == activation
Ejemplo n.º 8
0
def test_forgot_password_generates_mail(reset_link,
                                        reset_mail,
                                        activation_model,
                                        authn_policy):
    request = DummyRequest(method='POST')
    request.registry.password_reset_serializer = FakeSerializer()
    authn_policy.authenticated_userid.return_value = None
    user = FakeUser(username='******', email='*****@*****.**')
    controller = ForgotPasswordController(request)
    controller.form = form_validating_to({"user": user})
    reset_link.return_value = "http://example.com"

    controller.forgot_password()

    reset_mail.assert_called_with(user, "faketoken", "http://example.com")
Ejemplo n.º 9
0
def test_forgot_password_returns_form_when_validation_fails():
    request = DummyRequest(method='POST')
    controller = ForgotPasswordController(request)
    controller.form = invalid_form()

    result = controller.forgot_password()

    assert result == {'form': 'invalid form'}
Ejemplo n.º 10
0
def test_forgot_password_returns_form_when_validation_fails(authn_policy):
    request = DummyRequest(method='POST')
    authn_policy.authenticated_userid.return_value = None
    controller = ForgotPasswordController(request)
    controller.form = invalid_form()

    result = controller.forgot_password()

    assert result == {'form': 'invalid form'}
Ejemplo n.º 11
0
def test_forgot_password_returns_form_when_validation_fails(authn_policy):
    request = DummyRequest(method='POST')
    authn_policy.authenticated_userid.return_value = None
    controller = ForgotPasswordController(request)
    controller.form = invalid_form()

    result = controller.forgot_password()

    assert result == {'form': 'invalid form'}
Ejemplo n.º 12
0
def test_forgot_password_generates_mail(reset_link,
                                        reset_mail,
                                        activation_model):
    request = DummyRequest(method='POST')
    request.registry.password_reset_serializer = FakeSerializer()
    user = FakeUser(username='******', email='*****@*****.**')
    controller = ForgotPasswordController(request)
    controller.form = form_validating_to({"user": user})
    reset_link.return_value = "http://example.com"
    reset_mail.return_value = {
        'recipients': [],
        'subject': '',
        'body': ''
    }

    controller.forgot_password()

    reset_mail.assert_called_with(user, "faketoken", "http://example.com")
Ejemplo n.º 13
0
def test_forgot_password_redirects_on_success(authn_policy):
    request = DummyRequest(method='POST')
    authn_policy.authenticated_userid.return_value = None
    user = FakeUser(username='******', email='*****@*****.**')
    controller = ForgotPasswordController(request)
    controller.form = form_validating_to({"user": user})

    result = controller.forgot_password()

    assert isinstance(result, httpexceptions.HTTPRedirection)
Ejemplo n.º 14
0
def test_forgot_password_redirects_on_success():
    request = DummyRequest(method='POST')
    request.registry.password_reset_serializer = FakeSerializer()
    user = FakeUser(username='******', email='*****@*****.**')
    controller = ForgotPasswordController(request)
    controller.form = form_validating_to({"user": user})

    result = controller.forgot_password()

    assert isinstance(result, httpexceptions.HTTPRedirection)
Ejemplo n.º 15
0
def test_forgot_password_sends_mail(reset_mail, mailer):
    request = DummyRequest(method='POST')
    request.registry.password_reset_serializer = FakeSerializer()
    user = FakeUser(username='******', email='*****@*****.**')
    controller = ForgotPasswordController(request)
    controller.form = form_validating_to({"user": user})
    message = reset_mail.return_value
    reset_mail.return_value = {
        'recipients': ['*****@*****.**'],
        'subject': 'subject',
        'body': 'body'
    }

    controller.forgot_password()

    mailer.send.assert_called_once_with(request,
                                        recipients=['*****@*****.**'],
                                        subject='subject',
                                        body='body')