예제 #1
0
파일: users_test.py 프로젝트: hypothesis/h
    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)
예제 #2
0
파일: users_test.py 프로젝트: magnuslim/h
    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)
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
파일: users_test.py 프로젝트: mikpim01/h
    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)
예제 #6
0
파일: users_test.py 프로젝트: hypothesis/h
    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)
예제 #7
0
    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)
예제 #8
0
파일: users_test.py 프로젝트: hypothesis/h
    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)
예제 #9
0
파일: users_test.py 프로젝트: magnuslim/h
    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)
예제 #10
0
파일: users_test.py 프로젝트: sk8terboi87/h
    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)
예제 #11
0
    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 == '*****@*****.**'
예제 #12
0
    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 == '*****@*****.**'
예제 #13
0
파일: users_test.py 프로젝트: magnuslim/h
    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)
예제 #14
0
    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
예제 #15
0
    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
예제 #16
0
파일: users_test.py 프로젝트: hypothesis/h
    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)
예제 #17
0
    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
예제 #18
0
    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)
예제 #19
0
파일: users_test.py 프로젝트: sk8terboi87/h
    def test_raises_404_when_user_not_found(self, pyramid_request,
                                            valid_payload):
        pyramid_request.matchdict['username'] = '******'

        with pytest.raises(HTTPNotFound):
            update(pyramid_request)
예제 #20
0
파일: users_test.py 프로젝트: hypothesis/h
    def test_it_returns_presented_user(
        self, pyramid_request, valid_payload, UserJSONPresenter
    ):
        result = update(user, pyramid_request)

        assert result == UserJSONPresenter.return_value.asdict()
예제 #21
0
    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()
예제 #22
0
    def test_raises_404_when_user_not_found(self, pyramid_request, valid_payload):
        pyramid_request.matchdict['username'] = '******'

        with pytest.raises(HTTPNotFound):
            update(pyramid_request)
예제 #23
0
    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'
예제 #24
0
    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)
예제 #25
0
    def test_it_updates_email(self, pyramid_request, valid_payload, user):
        pyramid_request.json_body = valid_payload
        update(pyramid_request)

        assert user.email == '*****@*****.**'
예제 #26
0
    def test_it_updates_email(self, pyramid_request, valid_payload, user):
        pyramid_request.json_body = valid_payload
        update(user, pyramid_request)

        assert user.email == '*****@*****.**'
예제 #27
0
    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'
예제 #28
0
파일: users_test.py 프로젝트: magnuslim/h
    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)
예제 #29
0
파일: users_test.py 프로젝트: magnuslim/h
    def test_it_returns_presented_user(
        self, pyramid_request, valid_payload, UserJSONPresenter
    ):
        result = update(user, pyramid_request)

        assert result == UserJSONPresenter.return_value.asdict()
예제 #30
0
    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)
예제 #31
0
    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()