Esempio n. 1
0
    def test_it_tracks_deprecated_put_requests(self, pyramid_request):
        pyramid_request.method = 'PUT'
        pyramid_request.stats = mock.Mock(spec_set=['incr'])

        views.update(mock.Mock(), pyramid_request)

        pyramid_request.stats.incr.assert_called_once_with('api.deprecated.put_update_annotation')
Esempio n. 2
0
    def test_it_validates_the_posted_data(self, pyramid_request, update_schema):
        context = mock.Mock()
        schema = update_schema.return_value

        views.update(context, pyramid_request)

        schema.validate.assert_called_once_with(pyramid_request.json_body)
Esempio n. 3
0
    def test_it_raises_if_validate_raises(self, pyramid_request,
                                          update_schema):
        update_schema.return_value.validate.side_effect = ValidationError(
            "asplode")

        with pytest.raises(ValidationError):
            views.update(mock.Mock(), pyramid_request)
Esempio n. 4
0
    def test_it_validates_the_posted_data(self, pyramid_request, update_schema):
        context = mock.Mock()
        schema = update_schema.return_value

        views.update(context, pyramid_request)

        schema.validate.assert_called_once_with(pyramid_request.json_body)
Esempio n. 5
0
    def test_it_presents_annotation(
        self, annotation_resource, presentation_service, pyramid_request
    ):
        views.update(mock.Mock(), pyramid_request)

        presentation_service.present.assert_called_once_with(
            annotation_resource.return_value
        )
Esempio n. 6
0
    def test_it_inits_the_schema(self, pyramid_request, update_schema):
        context = mock.Mock()

        views.update(context, pyramid_request)

        update_schema.assert_called_once_with(pyramid_request,
                                              context.annotation.target_uri,
                                              context.annotation.groupid)
Esempio n. 7
0
    def test_it_presents_annotation(self,
                                    annotation_resource,
                                    presentation_service,
                                    pyramid_request):
        views.update(mock.Mock(), pyramid_request)

        presentation_service.present.assert_called_once_with(
                annotation_resource.return_value)
Esempio n. 8
0
    def test_it_inits_the_schema(self, pyramid_request, update_schema):
        context = mock.Mock()

        views.update(context, pyramid_request)

        update_schema.assert_called_once_with(pyramid_request,
                                              context.annotation.target_uri,
                                              context.annotation.groupid)
Esempio n. 9
0
    def test_it_tracks_deprecated_put_requests(self, pyramid_request):
        pyramid_request.method = "PUT"
        pyramid_request.stats = mock.Mock(spec_set=["incr"])

        views.update(mock.Mock(), pyramid_request)

        pyramid_request.stats.incr.assert_called_once_with(
            "api.deprecated.put_update_annotation")
Esempio n. 10
0
    def test_it_inits_an_AnnotationEvent(self, AnnotationEvent, storage,
                                         pyramid_request):
        context = mock.Mock()

        views.update(context, pyramid_request)

        AnnotationEvent.assert_called_once_with(
            pyramid_request, storage.update_annotation.return_value.id,
            "update")
Esempio n. 11
0
    def test_it_inits_an_AnnotationEvent(
        self, AnnotationEvent, storage, pyramid_request
    ):
        context = mock.Mock()

        views.update(context, pyramid_request)

        AnnotationEvent.assert_called_once_with(
            pyramid_request, storage.update_annotation.return_value.id, "update"
        )
Esempio n. 12
0
    def test_it_publishes_annotation_event(self, annotation_context,
                                           AnnotationEvent, storage,
                                           pyramid_request):
        views.update(annotation_context, pyramid_request)

        AnnotationEvent.assert_called_once_with(
            pyramid_request, storage.update_annotation.return_value.id,
            "update")
        pyramid_request.notify_after_commit.assert_called_once_with(
            AnnotationEvent.return_value)
Esempio n. 13
0
 def test_it_raises_if_json_parsing_fails(self, pyramid_request):
     """It raises PayloadError if parsing of the request body fails."""
     # Make accessing the request.json_body property raise ValueError.
     type(pyramid_request).json_body = {}
     with mock.patch.object(type(pyramid_request),
                            "json_body",
                            new_callable=mock.PropertyMock) as json_body:
         json_body.side_effect = ValueError()
         with pytest.raises(views.PayloadError):
             views.update(mock.Mock(), pyramid_request)
Esempio n. 14
0
 def test_it_raises_if_json_parsing_fails(self, pyramid_request):
     """It raises PayloadError if parsing of the request body fails."""
     # Make accessing the request.json_body property raise ValueError.
     type(pyramid_request).json_body = {}
     with mock.patch.object(type(pyramid_request),
                            'json_body',
                            new_callable=mock.PropertyMock) as json_body:
         json_body.side_effect = ValueError()
         with pytest.raises(views.PayloadError):
             views.update(mock.Mock(), pyramid_request)
Esempio n. 15
0
    def test_it_initialises_annotation_resource(self, storage,
                                                annotation_resource,
                                                pyramid_request, group_service,
                                                links_service):

        annotation = storage.update_annotation.return_value

        views.update(mock.Mock(), pyramid_request)

        annotation_resource.assert_called_once_with(annotation, group_service,
                                                    links_service)
Esempio n. 16
0
    def test_it_updates_the_annotation_in_storage(self, pyramid_request,
                                                  storage, update_schema,
                                                  group_service):
        context = mock.Mock()
        schema = update_schema.return_value
        schema.validate.return_value = mock.sentinel.validated_data

        views.update(context, pyramid_request)

        storage.update_annotation.assert_called_once_with(
            pyramid_request, context.annotation.id,
            mock.sentinel.validated_data, group_service)
Esempio n. 17
0
    def test_it_initialises_annotation_resource(self,
                                                storage,
                                                annotation_resource,
                                                pyramid_request,
                                                group_service,
                                                links_service):

        annotation = storage.update_annotation.return_value

        views.update(mock.Mock(), pyramid_request)

        annotation_resource.assert_called_once_with(
                annotation, group_service, links_service)
Esempio n. 18
0
    def test_it_updates_the_annotation_in_storage(
        self, pyramid_request, storage, update_schema, group_service
    ):
        context = mock.Mock()
        schema = update_schema.return_value
        schema.validate.return_value = mock.sentinel.validated_data

        views.update(context, pyramid_request)

        storage.update_annotation.assert_called_once_with(
            pyramid_request,
            context.annotation.id,
            mock.sentinel.validated_data,
            group_service,
        )
Esempio n. 19
0
    def test_it(
        self,
        annotation_context,
        pyramid_request,
        update_schema,
        storage,
        annotation_json_service,
    ):
        returned = views.update(annotation_context, pyramid_request)

        update_schema.assert_called_once_with(
            pyramid_request,
            annotation_context.annotation.target_uri,
            annotation_context.annotation.groupid,
        )
        update_schema.return_value.validate.assert_called_once_with(
            pyramid_request.json_body)

        storage.update_annotation.assert_called_once_with(
            pyramid_request,
            annotation_context.annotation.id,
            update_schema.return_value.validate.return_value,
        )

        annotation_json_service.present_for_user.assert_called_once_with(
            annotation=storage.update_annotation.return_value,
            user=pyramid_request.user)

        assert returned == annotation_json_service.present_for_user.return_value
Esempio n. 20
0
    def test_it_returns_a_presented_dict(self, presentation_service,
                                         pyramid_request):
        returned = views.update(mock.Mock(), pyramid_request)

        assert returned == presentation_service.present.return_value
Esempio n. 21
0
    def test_it_fires_the_AnnotationEvent(self, AnnotationEvent,
                                          pyramid_request):
        views.update(mock.Mock(), pyramid_request)

        pyramid_request.notify_after_commit.assert_called_once_with(
            AnnotationEvent.return_value)
Esempio n. 22
0
    def test_it_raises_if_validate_raises(self, pyramid_request, update_schema):
        update_schema.return_value.validate.side_effect = ValidationError('asplode')

        with pytest.raises(ValidationError):
            views.update(mock.Mock(), pyramid_request)
Esempio n. 23
0
    def test_it_raises_if_storage_raises(self, pyramid_request, storage):
        storage.update_annotation.side_effect = ValidationError("asplode")

        with pytest.raises(ValidationError):
            views.update(mock.Mock(), pyramid_request)
Esempio n. 24
0
    def test_it_raises_if_storage_raises(self, pyramid_request, storage):
        storage.update_annotation.side_effect = ValidationError('asplode')

        with pytest.raises(ValidationError):
            views.update(mock.Mock(), pyramid_request)
Esempio n. 25
0
    def test_it_fires_the_AnnotationEvent(self, AnnotationEvent, pyramid_request):
        views.update(mock.Mock(), pyramid_request)

        pyramid_request.notify_after_commit.assert_called_once_with(
            AnnotationEvent.return_value)
Esempio n. 26
0
    def test_it_returns_a_presented_dict(self,
                                         presentation_service,
                                         pyramid_request):
        returned = views.update(mock.Mock(), pyramid_request)

        assert returned == presentation_service.present.return_value