示例#1
0
    def test_links_includes_registered_links(self):
        request = DummyRequest()
        annotation = mock.Mock()
        add_annotation_link_generator(request.registry, 'giraffe',
                                      lambda r, a: 'http://foo.com/bar/123')

        links = AnnotationBasePresenter(request, annotation).links

        assert links == {'giraffe': 'http://foo.com/bar/123'}
示例#2
0
    def test_link_generators_called_with_request_and_annotation(self):
        request = DummyRequest()
        annotation = mock.Mock()
        dummy_link_generator = mock.Mock(return_value='')
        add_annotation_link_generator(request.registry, 'giraffe',
                                      dummy_link_generator)

        links = AnnotationBasePresenter(request, annotation).links

        dummy_link_generator.assert_called_once_with(request, annotation)
示例#3
0
    def test_link_generators_called_with_request_and_annotation(self):
        request = DummyRequest()
        annotation = mock.Mock()
        dummy_link_generator = mock.Mock(return_value='')
        add_annotation_link_generator(request.registry,
                                      'giraffe',
                                      dummy_link_generator)

        links = AnnotationBasePresenter(request, annotation).links

        dummy_link_generator.assert_called_once_with(request, annotation)
示例#4
0
    def test_links_omits_link_generators_that_return_none(self):
        request = DummyRequest()
        annotation = mock.Mock()
        add_annotation_link_generator(request.registry, 'giraffe',
                                      lambda r, a: 'http://foo.com/bar/123')
        add_annotation_link_generator(request.registry, 'donkey',
                                      lambda r, a: None)

        links = AnnotationBasePresenter(request, annotation).links

        assert links == {'giraffe': 'http://foo.com/bar/123'}
示例#5
0
    def test_links_includes_registered_links(self):
        request = DummyRequest()
        annotation = mock.Mock()
        add_annotation_link_generator(request.registry,
                                      'giraffe',
                                      lambda r, a: 'http://foo.com/bar/123')

        links = AnnotationBasePresenter(request, annotation).links

        assert links == {
            'giraffe': 'http://foo.com/bar/123'
        }
示例#6
0
    def test_asdict_does_not_return_links_from_link_generators(self):
        request = DummyRequest()
        annotation = mock.Mock(id='my-id', extra={})
        add_annotation_link_generator(request.registry,
                                      'giraffe',
                                      lambda r, a: 'http://giraffe.com')
        add_annotation_link_generator(request.registry,
                                      'withid',
                                      lambda r, a: 'http://withid.com/' + a.id)

        annotation_dict = AnnotationSearchIndexPresenter(
            request, annotation).asdict()

        assert 'links' not in annotation_dict
示例#7
0
    def test_links_omits_link_generators_that_return_none(self):
        request = DummyRequest()
        annotation = mock.Mock()
        add_annotation_link_generator(request.registry,
                                      'giraffe',
                                      lambda r, a: 'http://foo.com/bar/123')
        add_annotation_link_generator(request.registry,
                                      'donkey',
                                      lambda r, a: None)

        links = AnnotationBasePresenter(request, annotation).links

        assert links == {
            'giraffe': 'http://foo.com/bar/123'
        }
示例#8
0
    def test_asdict_with_link_generators(self, document_asdict):
        request = DummyRequest()
        ann = mock.Mock(id='my-id', extra={})
        document_asdict.return_value = {}

        add_annotation_link_generator(request.registry, 'giraffe',
                                      lambda r, a: 'http://giraffe.com')
        add_annotation_link_generator(request.registry, 'withid',
                                      lambda r, a: 'http://withid.com/' + a.id)

        presented = AnnotationJSONPresenter(request, ann).asdict()

        assert presented['links'] == {
            'giraffe': 'http://giraffe.com',
            'withid': 'http://withid.com/my-id',
        }
示例#9
0
    def test_asdict_with_link_generators(self, document_asdict):
        request = DummyRequest()
        ann = mock.Mock(id='my-id', extra={})
        document_asdict.return_value = {}

        add_annotation_link_generator(request.registry,
                                      'giraffe',
                                      lambda r, a: 'http://giraffe.com')
        add_annotation_link_generator(request.registry,
                                      'withid',
                                      lambda r, a: 'http://withid.com/' + a.id)

        presented = AnnotationJSONPresenter(request, ann).asdict()

        assert presented['links'] == {
            'giraffe': 'http://giraffe.com',
            'withid': 'http://withid.com/my-id',
        }