Example #1
0
    def test_post_returns_form_when_validation_fails(self, invalid_form,
                                                     pyramid_request):
        controller = views.ForgotPasswordController(pyramid_request)
        controller.form = invalid_form()

        result = controller.post()

        assert result == {'form': 'invalid form'}
Example #2
0
    def test_post_creates_no_activations_when_validation_fails(
            self, activation_model, invalid_form, pyramid_request):
        controller = views.ForgotPasswordController(pyramid_request)
        controller.form = invalid_form()

        controller.post()

        assert activation_model.call_count == 0
Example #3
0
    def test_post_returns_form_when_validation_fails(self):
        request = DummyRequest(method='POST')
        controller = views.ForgotPasswordController(request)
        controller.form = invalid_form()

        result = controller.post()

        assert result == {'form': 'invalid form'}
Example #4
0
    def test_post_creates_no_activations_when_validation_fails(
            self, activation_model):
        request = DummyRequest(method='POST')
        controller = views.ForgotPasswordController(request)
        controller.form = invalid_form()

        controller.post()

        assert activation_model.call_count == 0
Example #5
0
    def test_post_redirects_on_success(self, factories, form_validating_to,
                                       pyramid_request):
        pyramid_request.registry.password_reset_serializer = FakeSerializer()
        user = factories.User(username='******', email='*****@*****.**')
        controller = views.ForgotPasswordController(pyramid_request)
        controller.form = form_validating_to({"user": user})

        result = controller.post()

        assert isinstance(result, httpexceptions.HTTPRedirection)
Example #6
0
    def test_post_generates_reset_link(self, reset_link, factories,
                                       form_validating_to, pyramid_request):
        pyramid_request.registry.password_reset_serializer = FakeSerializer()
        user = factories.User(username='******', email='*****@*****.**')
        controller = views.ForgotPasswordController(pyramid_request)
        controller.form = form_validating_to({"user": user})

        controller.post()

        reset_link.assert_called_with(pyramid_request, "faketoken")
Example #7
0
    def test_post_redirects_on_success(self):
        request = DummyRequest(method='POST')
        request.registry.password_reset_serializer = FakeSerializer()
        user = FakeUser(username='******', email='*****@*****.**')
        controller = views.ForgotPasswordController(request)
        controller.form = form_validating_to({"user": user})

        result = controller.post()

        assert isinstance(result, httpexceptions.HTTPRedirection)
Example #8
0
    def test_post_generates_reset_link(self, reset_link):
        request = DummyRequest(method='POST')
        request.registry.password_reset_serializer = FakeSerializer()
        user = FakeUser(username='******', email='*****@*****.**')
        controller = views.ForgotPasswordController(request)
        controller.form = form_validating_to({"user": user})

        controller.post()

        reset_link.assert_called_with(request, "faketoken")
Example #9
0
    def test_post_generates_mail(self, reset_link, reset_mail,
                                 activation_model, factories,
                                 form_validating_to, pyramid_request):
        pyramid_request.registry.password_reset_serializer = FakeSerializer()
        user = factories.User(username='******', email='*****@*****.**')
        controller = views.ForgotPasswordController(pyramid_request)
        controller.form = form_validating_to({"user": user})
        reset_link.return_value = "http://example.com"
        reset_mail.return_value = {'recipients': [], 'subject': '', 'body': ''}

        controller.post()

        reset_mail.assert_called_with(user, "faketoken", "http://example.com")
Example #10
0
    def test_post_sends_mail(self, reset_mail, factories, form_validating_to,
                             mailer, pyramid_request):
        pyramid_request.registry.password_reset_serializer = FakeSerializer()
        user = factories.User(username='******', email='*****@*****.**')
        controller = views.ForgotPasswordController(pyramid_request)
        controller.form = form_validating_to({"user": user})
        reset_mail.return_value = {
            'recipients': ['*****@*****.**'],
            'subject': 'subject',
            'body': 'body'
        }

        controller.post()

        mailer.send.delay.assert_called_once_with(
            recipients=['*****@*****.**'], subject='subject', body='body')
Example #11
0
    def test_post_sends_mail(self, reset_mail, mailer):
        request = DummyRequest(method='POST')
        request.registry.password_reset_serializer = FakeSerializer()
        user = FakeUser(username='******', email='*****@*****.**')
        controller = views.ForgotPasswordController(request)
        controller.form = form_validating_to({"user": user})
        reset_mail.return_value = {
            'recipients': ['*****@*****.**'],
            'subject': 'subject',
            'body': 'body'
        }

        controller.post()

        mailer.send.assert_called_once_with(request,
                                            recipients=['*****@*****.**'],
                                            subject='subject',
                                            body='body')
Example #12
0
    def test_get_redirects_when_logged_in(self, pyramid_config,
                                          pyramid_request):
        pyramid_config.testing_securitypolicy("acct:[email protected]")

        with pytest.raises(httpexceptions.HTTPFound):
            views.ForgotPasswordController(pyramid_request).get()
Example #13
0
    def test_get_redirects_when_logged_in(self, config):
        request = DummyRequest(method='POST')
        config.testing_securitypolicy("acct:[email protected]")

        with pytest.raises(httpexceptions.HTTPFound):
            views.ForgotPasswordController(request).get()
Example #14
0
    def test_get_redirects_when_logged_in(self, authn_policy):
        request = DummyRequest(method='POST')
        authn_policy.authenticated_userid.return_value = "acct:[email protected]"

        with pytest.raises(httpexceptions.HTTPFound):
            views.ForgotPasswordController(request).get()