コード例 #1
0
    def render_opensearchdescription(self, request, context, template_name):
        description = OPENSEARCH.OpenSearchDescription()

        meta = OpenSearchView.opensearch_meta.copy()
        meta.update(self.search_view.opensearch_meta)
        for key, value in meta.iteritems():
            if value is not None:
                description.append(OPENSEARCH(key, value))

        for image in self.search_view.opensearch_images:
            description.append(OPENSEARCH.Image(image['url'],
                                                height=unicode(image.get('height', 16)),
                                                width=unicode(image.get('width', 16)),
                                                type=unicode(image.get('type' ,'image/x-icon'))))

        for renderer in Conneg(obj=self.search_view).renderers:
            template = request.build_absolute_uri('?') + '?q={searchTerms}&page={startPage?}&format='+renderer.format
            for mimetype in renderer.mimetypes:
                url = OPENSEARCH.Url(type=mimetype.value,
                                     template=template,
                                     rel='results')
                description.append(url)

        return HttpResponse(etree.tostring(description, pretty_print=True, xml_declaration=True),
                            mimetype='application/xml')
コード例 #2
0
ファイル: views.py プロジェクト: shnizzedy/humfrey
    def testAll(self):
        for rdf_processor in self._ALL:
            endpoint = mock.Mock(spec=humfrey.sparql.endpoint.Endpoint)
            graph = rdflib.ConjunctiveGraph()
            doc_uri = rdflib.URIRef('http://example.org/doc/Foo')
            subject_uri = rdflib.URIRef('http://example.org/id/Foo')
            subject = resource.Resource(subject_uri, graph, endpoint)

            #import pdb;pdb.set_trace()
            doc_view = views.DocView()
            renderers = Conneg(obj=doc_view).renderers

            request = self.factory.get('')

            doc_view.context = {
                'graph': graph,
                'doc_uri': doc_uri,
                'subject_uri': subject_uri,
                'subject': subject,
                'endpoint': endpoint
            }
            doc_view.context['renderers'] = [
                doc_view.renderer_for_context(request, renderer)
                for renderer in renderers
            ]

            rdf_processor(request=request, context=doc_view.context)

            self.assertFalse(
                endpoint.query.called,
                "The RDF processor should not be touching the endpoint (at the moment)"
            )
            self.check_valid_terms(graph)
            self.assertIsInstance(doc_view.context, (type(None), dict))