def test_it_presents_updated_user_returned_from_service( self, pyramid_request, user, UserJSONPresenter, user_update_svc ): user_update_svc.update.return_value = user update(user, pyramid_request) UserJSONPresenter.assert_called_once_with(user)
def test_it_validates_the_input(self, pyramid_request, valid_payload, UpdateUserAPISchema): update_schema = UpdateUserAPISchema.return_value update_schema.validate.return_value = valid_payload pyramid_request.json_body = valid_payload update(pyramid_request) update_schema.validate.assert_called_once_with(valid_payload)
def test_raises_when_schema_validation_fails(self, pyramid_request, valid_payload, UpdateUserAPISchema): update_schema = UpdateUserAPISchema.return_value update_schema.validate.side_effect = ValidationError('validation failed') pyramid_request.json_body = valid_payload with pytest.raises(ValidationError): update(pyramid_request)
def test_raises_when_schema_validation_fails(self, user, pyramid_request, valid_payload, UpdateUserAPISchema): UpdateUserAPISchema.return_value.validate.side_effect = ValidationError( "validation failed") with pytest.raises(ValidationError): update(user, pyramid_request)
def test_it_validates_request_payload( self, pyramid_request, user, user_update_svc, UpdateUserAPISchema ): data = {"display_name": "Rudolph Blimp", "email": "*****@*****.**"} pyramid_request.json_body = data update(user, pyramid_request) UpdateUserAPISchema.return_value.validate.assert_called_once_with(data)
def test_it_validates_the_input(self, user, pyramid_request, valid_payload, UpdateUserAPISchema): update_schema = UpdateUserAPISchema.return_value update_schema.validate.return_value = valid_payload pyramid_request.json_body = valid_payload update(user, pyramid_request) update_schema.validate.assert_called_once_with(valid_payload)
def test_raises_when_schema_validation_fails( self, user, pyramid_request, valid_payload, UpdateUserAPISchema ): UpdateUserAPISchema.return_value.validate.side_effect = ValidationError( "validation failed" ) with pytest.raises(ValidationError): update(user, pyramid_request)
def test_raises_when_schema_validation_fails(self, pyramid_request, valid_payload, schemas): update_schema = schemas.UpdateUserAPISchema.return_value update_schema.validate.side_effect = ValidationError( 'validation failed') pyramid_request.json_body = valid_payload with pytest.raises(ValidationError): update(pyramid_request)
def test_you_can_add_an_email_to_a_user_who_has_no_email( self, factories, pyramid_request, user_svc, valid_payload): user = factories.User(email=None) user_svc.fetch.return_value = user user_svc.fetch.side_effect = None del valid_payload['display_name'] valid_payload['email'] = '*****@*****.**' pyramid_request.json_body = valid_payload update(user, pyramid_request) assert user.email == '*****@*****.**'
def test_you_can_add_an_email_to_a_user_who_has_no_email( self, factories, pyramid_request, user_svc, valid_payload): user = factories.User(email=None) user_svc.fetch.return_value = user user_svc.fetch.side_effect = None del valid_payload['display_name'] valid_payload['email'] = '*****@*****.**' pyramid_request.json_body = valid_payload update(pyramid_request) assert user.email == '*****@*****.**'
def test_it_proxies_to_user_update_svc( self, pyramid_request, user, user_update_svc, UpdateUserAPISchema ): appstruct = { "display_name": "Rudolph Blimp", "email": "*****@*****.**", } UpdateUserAPISchema.return_value.validate.return_value = appstruct user_update_svc.update.return_value = user update(user, pyramid_request) user_update_svc.update.assert_called_once_with(user, **appstruct)
def test_you_can_update_the_displayname_of_a_user_who_has_no_email( self, factories, pyramid_request, user_svc, valid_payload): user = factories.User(display_name='old_display_name', email=None) user_svc.fetch.return_value = user user_svc.fetch.side_effect = None del valid_payload['email'] valid_payload['display_name'] = 'new_display_name' pyramid_request.json_body = valid_payload update(user, pyramid_request) assert user.display_name == 'new_display_name' assert user.email is None
def test_you_can_update_the_displayname_of_a_user_who_has_no_email( self, factories, pyramid_request, user_svc, valid_payload): user = factories.User(display_name='old_display_name', email=None) user_svc.fetch.return_value = user user_svc.fetch.side_effect = None del valid_payload['email'] valid_payload['display_name'] = 'new_display_name' pyramid_request.json_body = valid_payload update(pyramid_request) assert user.display_name == 'new_display_name' assert user.email is None
def test_it( self, context, pyramid_request, valid_payload, UpdateUserAPISchema, user_update_service, TrustedUserJSONPresenter, ): UpdateUserAPISchema.return_value.validate.return_value = valid_payload result = update(context, pyramid_request) UpdateUserAPISchema.assert_called_with() UpdateUserAPISchema.return_value.validate.assert_called_once_with( valid_payload) user_update_service.update.assert_called_once_with( context.user, **valid_payload) user = user_update_service.update.return_value TrustedUserJSONPresenter.assert_called_with(user) TrustedUserJSONPresenter.return_value.asdict.assert_called_once_with() assert result == TrustedUserJSONPresenter.return_value.asdict.return_value
def test_raises_for_invalid_json_body(self, pyramid_request, patch): type(pyramid_request).json_body = mock.PropertyMock(side_effect=ValueError()) with pytest.raises(PayloadError): update(pyramid_request)
def test_raises_404_when_user_not_found(self, pyramid_request, valid_payload): pyramid_request.matchdict['username'] = '******' with pytest.raises(HTTPNotFound): update(pyramid_request)
def test_it_returns_presented_user( self, pyramid_request, valid_payload, UserJSONPresenter ): result = update(user, pyramid_request) assert result == UserJSONPresenter.return_value.asdict()
def test_it_returns_presented_user(self, pyramid_request, valid_payload, presenter): pyramid_request.json_body = valid_payload result = update(pyramid_request) assert result == presenter.return_value.asdict()
def test_it_updates_display_name(self, pyramid_request, valid_payload, user): pyramid_request.json_body = valid_payload update(user, pyramid_request) assert user.display_name == 'Jeremy Weyland'
def test_it_presents_user(self, pyramid_request, valid_payload, user, presenter): pyramid_request.json_body = valid_payload update(pyramid_request) presenter.assert_called_once_with(user)
def test_it_updates_email(self, pyramid_request, valid_payload, user): pyramid_request.json_body = valid_payload update(pyramid_request) assert user.email == '*****@*****.**'
def test_it_updates_email(self, pyramid_request, valid_payload, user): pyramid_request.json_body = valid_payload update(user, pyramid_request) assert user.email == '*****@*****.**'
def test_it_updates_display_name(self, pyramid_request, valid_payload, user): pyramid_request.json_body = valid_payload update(pyramid_request) assert user.display_name == 'Jeremy Weyland'
def test_raises_for_invalid_json_body(self, user, pyramid_request, patch): type(pyramid_request).json_body = mock.PropertyMock(side_effect=ValueError()) with pytest.raises(PayloadError): update(user, pyramid_request)
def test_it_presents_user(self, pyramid_request, valid_payload, user, presenter): pyramid_request.json_body = valid_payload update(user, pyramid_request) presenter.assert_called_once_with(user)
def test_it_returns_presented_user(self, pyramid_request, valid_payload, presenter): pyramid_request.json_body = valid_payload result = update(user, pyramid_request) assert result == presenter.return_value.asdict()