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()
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()
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"}
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
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)
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
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
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="******")
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)
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')
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)