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