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'}
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)
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)
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'}
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' }
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
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' }
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', }
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', }