예제 #1
0
    def test_get_redirects_when_logged_in(self, authn_policy):
        request = DummyRequest()
        authn_policy.authenticated_userid.return_value = "acct:[email protected]"
        controller = views.RegisterController(request)

        with pytest.raises(httpexceptions.HTTPRedirection):
            controller.get()
예제 #2
0
    def test_get_redirects_when_logged_in(self, config):
        request = DummyRequest()
        config.testing_securitypolicy("acct:[email protected]")
        controller = views.RegisterController(request)

        with pytest.raises(httpexceptions.HTTPRedirection):
            controller.get()
예제 #3
0
    def test_post_returns_errors_when_validation_fails(self):
        request = DummyRequest(method='POST')
        controller = views.RegisterController(request)
        controller.form = invalid_form()

        result = controller.post()

        assert result == {"form": "invalid form"}
예제 #4
0
    def test_post_no_event_when_validation_fails(self, event, notify):
        request = DummyRequest(method='POST')
        controller = views.RegisterController(request)
        controller.form = invalid_form()

        controller.post()

        assert not event.called
        assert not notify.called
예제 #5
0
    def test_post_event_redirects_on_success(self):
        request = DummyRequest(method='POST')
        controller = views.RegisterController(request)
        controller.form = form_validating_to({
            "username": "******",
            "email": "*****@*****.**",
            "password": "******",
        })

        result = controller.post()

        assert isinstance(result, httpexceptions.HTTPRedirection)
예제 #6
0
    def test_post_adds_new_user_to_session(self, user_model):
        request = DummyRequest(method='POST')
        controller = views.RegisterController(request)
        controller.form = form_validating_to({
            "username": "******",
            "email": "*****@*****.**",
            "password": "******",
        })

        controller.post()

        assert user_model.return_value in request.db.added
예제 #7
0
    def test_post_creates_new_activation(self, activation_model, user_model):
        request = DummyRequest(method='POST')
        controller = views.RegisterController(request)
        controller.form = form_validating_to({
            "username": "******",
            "email": "*****@*****.**",
            "password": "******",
        })
        new_user = user_model.return_value

        controller.post()

        assert new_user.activation == activation_model.return_value
예제 #8
0
    def test_post_creates_user_from_form_data(self, user_model):
        request = DummyRequest(method='POST')
        controller = views.RegisterController(request)
        controller.form = form_validating_to({
            "username": "******",
            "email": "*****@*****.**",
            "password": "******",
            "random_other_field": "something else",
        })

        controller.post()

        user_model.assert_called_with(username="******",
                                      email="*****@*****.**",
                                      password="******")
예제 #9
0
    def test_post_event_when_validation_succeeds(self, event, notify,
                                                 user_model):
        request = DummyRequest(method='POST')
        controller = views.RegisterController(request)
        controller.form = form_validating_to({
            "username": "******",
            "email": "*****@*****.**",
            "password": "******",
        })
        new_user = user_model.return_value

        controller.post()

        event.assert_called_with(request, new_user)
        notify.assert_called_with(event.return_value)
예제 #10
0
    def test_post_sends_email(self, activation_email, mailer):
        request = DummyRequest(method='POST')
        controller = views.RegisterController(request)
        controller.form = form_validating_to({
            "username": "******",
            "email": "*****@*****.**",
            "password": "******",
        })
        activation_email.return_value = {
            'recipients': ['*****@*****.**'],
            'subject': 'subject',
            'body': 'body'
        }

        controller.post()

        mailer.send.delay.assert_called_once_with(
            recipients=['*****@*****.**'], subject='subject', body='body')
예제 #11
0
    def test_post_generates_activation_email_from_user(self, activation_email,
                                                       user_model):
        request = DummyRequest(method='POST')
        controller = views.RegisterController(request)
        controller.form = form_validating_to({
            "username": "******",
            "email": "*****@*****.**",
            "password": "******",
        })
        new_user = user_model.return_value
        activation_email.return_value = {
            'recipients': [],
            'subject': '',
            'body': ''
        }

        controller.post()

        activation_email.assert_called_once_with(request, new_user)