def test_register_returns_errors_when_validation_fails(): request = DummyRequest(method='POST') controller = RegisterController(request) controller.form = invalid_form() result = controller.register() assert result == {"form": "invalid form"}
def test_register_form_redirects_when_logged_in(authn_policy): request = DummyRequest() authn_policy.authenticated_userid.return_value = "acct:[email protected]" controller = RegisterController(request) with pytest.raises(httpexceptions.HTTPRedirection): controller.register_form()
def test_register_no_event_when_validation_fails(event, notify): request = DummyRequest(method='POST') controller = RegisterController(request) controller.form = invalid_form() controller.register() assert not event.called assert not notify.called
def test_register_adds_new_user_to_session(user_model): request = DummyRequest(method='POST') controller = RegisterController(request) controller.form = form_validating_to({ "username": "******", "email": "*****@*****.**", "password": "******", }) controller.register() assert user_model.return_value in request.db.added
def test_register_event_redirects_on_success(): request = DummyRequest(method='POST') controller = RegisterController(request) controller.form = form_validating_to({ "username": "******", "email": "*****@*****.**", "password": "******", }) result = controller.register() assert isinstance(result, httpexceptions.HTTPRedirection)
def test_register_sends_activation_email(activation_email, mailer): request = DummyRequest(method='POST') controller = RegisterController(request) controller.form = form_validating_to({ "username": "******", "email": "*****@*****.**", "password": "******", }) controller.register() assert activation_email.return_value in mailer.outbox
def test_registration_does_not_autologin(config, authn_policy): configure(config) request = DummyRequest() request.method = 'POST' request.POST.update({'email': '*****@*****.**', 'password': '******', 'username': '******'}) ctrl = RegisterController(request) ctrl.register() assert not authn_policy.remember.called
def test_register_event_when_validation_succeeds(event, notify, user_model): request = DummyRequest(method='POST') controller = RegisterController(request) controller.form = form_validating_to({ "username": "******", "email": "*****@*****.**", "password": "******", }) new_user = user_model.return_value controller.register() event.assert_called_with(request, new_user) notify.assert_called_with(event.return_value)
def test_register_generates_activation_email_from_user(activation_email, user_model): request = DummyRequest(method='POST') controller = RegisterController(request) controller.form = form_validating_to({ "username": "******", "email": "*****@*****.**", "password": "******", }) new_user = user_model.return_value controller.register() activation_email.assert_called_with(request, new_user)
def test_register_creates_new_activation(activation_model, user_model): request = DummyRequest(method='POST') controller = RegisterController(request) controller.form = form_validating_to({ "username": "******", "email": "*****@*****.**", "password": "******", }) new_user = user_model.return_value controller.register() assert new_user.activation == activation_model.return_value
def test_register_creates_user_from_form_data(user_model): request = DummyRequest(method='POST') controller = RegisterController(request) controller.form = form_validating_to({ "username": "******", "email": "*****@*****.**", "password": "******", "random_other_field": "something else", }) controller.register() user_model.assert_called_with(username="******", email="*****@*****.**", password="******")
def test_registration_does_not_autologin(config, authn_policy): configure(config) request = DummyRequest() request.method = 'POST' request.POST.update({ 'email': '*****@*****.**', 'password': '******', 'username': '******' }) ctrl = RegisterController(request) ctrl.register() assert not authn_policy.remember.called
def test_register_form_redirects_when_logged_in(authn_policy): request = DummyRequest() authn_policy.authenticated_userid.return_value = "acct:[email protected]" result = RegisterController(request).register_form() assert isinstance(result, httpexceptions.HTTPRedirection)
def test_activate_returns_not_found_if_user_not_found(user_model): request = DummyRequest(matchdict={'id': '123', 'code': 'abc456'}) user_model.get_by_activation.return_value = None result = RegisterController(request).activate() assert isinstance(result, httpexceptions.HTTPNotFound)
def test_activate_no_event_on_failure(event, notify): request = DummyRequest() RegisterController(request).activate() assert not event.called assert not notify.called
def test_register_returns_errors_when_validation_fails(form_validator): request = DummyRequest(method='POST') form_validator.return_value = ({"errors": "BANG!"}, None) result = RegisterController(request).register() assert result == {"errors": "BANG!"}
def test_activate_looks_up_user_by_activation(activation_model, user_model): request = DummyRequest(matchdict={'id': '123', 'code': 'abc456'}) activation = activation_model.get_by_code.return_value result = RegisterController(request).activate() user_model.get_by_activation.assert_called_with(activation)
def test_activate_redirects_on_success(user_model): request = DummyRequest(matchdict={'id': '123', 'code': 'abc456'}) giraffe = FakeUser(id=123) user_model.get_by_activation.return_value = giraffe result = RegisterController(request).activate() assert isinstance(result, httpexceptions.HTTPRedirection)
def test_register_no_event_when_validation_fails(event, form_validator, notify): request = DummyRequest(method='POST') form_validator.return_value = ({"errors": "Kablooey!"}, None) RegisterController(request).register() assert not event.called assert not notify.called
def test_activate_event_when_validation_succeeds(event, notify, user_model): request = DummyRequest(matchdict={'id': '123', 'code': 'abc456'}) giraffe = FakeUser(id=123) user_model.get_by_activation.return_value = giraffe RegisterController(request).activate() event.assert_called_with(request, giraffe) notify.assert_called_with(event.return_value)
def test_activate_activates_user(activation_model, user_model): request = DummyRequest(matchdict={'id': '123', 'code': 'abc456'}) activation = activation_model.get_by_code.return_value giraffe = FakeUser(id=123) user_model.get_by_activation.return_value = giraffe result = RegisterController(request).activate() assert activation in request.db.deleted
def test_register_sends_email(activation_email, mailer): request = DummyRequest(method='POST') controller = RegisterController(request) controller.form = form_validating_to({ "username": "******", "email": "*****@*****.**", "password": "******", }) activation_email.return_value = { 'recipients': ['*****@*****.**'], 'subject': 'subject', 'body': 'body' } controller.register() mailer.send.assert_called_once_with(request, recipients=['*****@*****.**'], subject='subject', body='body')
def test_register_event_redirects_on_success(form_validator): request = DummyRequest(method='POST') form_validator.return_value = (None, { "username": "******", "email": "*****@*****.**", "password": "******", }) result = RegisterController(request).register() assert isinstance(result, httpexceptions.HTTPRedirection)
def test_activate_returns_not_found_if_code_missing(): request = DummyRequest(matchdict={'id': '123'}) result = RegisterController(request).activate() assert isinstance(result, httpexceptions.HTTPNotFound)
def test_activate_returns_not_found_if_id_not_integer(): request = DummyRequest(matchdict={'id': 'abc', 'code': 'abc456'}) result = RegisterController(request).activate() assert isinstance(result, httpexceptions.HTTPNotFound)
def test_activate_looks_up_activation_by_code(activation_model): request = DummyRequest(matchdict={'id': '123', 'code': 'abc456'}) result = RegisterController(request).activate() activation_model.get_by_code.assert_called_with('abc456')