def dispatch_request(self, *args, **kwargs): if want_rdf(): fmt = RDF_EXTENSIONS[negociate_content()] url = url_for('datasets.rdf_format', dataset=kwargs['dataset'].id, format=fmt) return redirect(url) return super(DatasetDetailView, self).dispatch_request(*args, **kwargs)
def rdf_catalog(org): '''Root RDF endpoint with content negociation handling''' format = RDF_EXTENSIONS[negociate_content()] url = url_for('organizations.rdf_catalog_format', org=org.id, format=format) return redirect(url)
def test_match_known_format_in_accept_header(self): headers = {'accept': 'what/ever, application/xml'} with self.app.test_request_context(headers=headers): self.assertEqual(negociate_content(), 'xml')
def test_support_accept_header_multiple_form_with_ponderation(self): headers = {'accept': 'application/xml;q=0.8, application/json;q=0.9'} with self.app.test_request_context(headers=headers): self.assertEqual(negociate_content(), 'json-ld')
def test_support_accept_header_multiple_form(self): headers = {'accept': 'application/xml, application/json'} with self.app.test_request_context(headers=headers): self.assertEqual(negociate_content(), 'xml')
def test_default_format_if_unkown_accept_header(self): headers = {'accept': 'what/ever'} with self.app.test_request_context(headers=headers): self.assertEqual(negociate_content(default='json-ld'), 'json-ld')
def test_default_format_if_no_accept_header(self): with self.app.test_request_context(): self.assertEqual(negociate_content(default='json-ld'), 'json-ld')
def rdf(dataset): '''Root RDF endpoint with content negociation handling''' format = RDF_EXTENSIONS[negociate_content()] url = url_for('datasets.rdf_format', dataset=dataset.id, format=format) return redirect(url)
def rdf_catalog(): '''Root RDF endpoint with content negociation handling''' format = RDF_EXTENSIONS[negociate_content()] url = url_for('site.rdf_catalog_format', format=format) return redirect(url)
def test_find_format_from_accept_header(self): for mime, expected in ACCEPTED_MIME_TYPES.items(): headers = {'accept': mime} with self.app.test_request_context(headers=headers): self.assertEqual(negociate_content(), expected)
def get(self, dataset): format = RDF_EXTENSIONS[negociate_content()] url = url_for('api.dataset_rdf_format', dataset=dataset.id, format=format) return redirect(url)
def get(self, org): format = RDF_EXTENSIONS[negociate_content()] url = url_for('api.organization_rdf_format', org=org.id, format=format) return redirect(url)