def test__get_rdf_base_url__return_base_url_from_settings(settings): settings.RDF_BASE_URL = "http://testserver" base_url = RDFRecord.get_rdf_base_url() assert base_url assert base_url == "testserver" base_url = RDFRecord.get_rdf_base_url(prepend_scheme=True, scheme="https") assert base_url assert base_url == "https://testserver"
def identify(self): """Return the OAI-PMH Identify request. See http://www.openarchives.org/OAI/openarchivesprotocol.html#Identify """ self.template_name = 'oaipmh/identify.xml' identify_data = { 'name': 'OAI-PMH repository for {}'.format(settings.SITE_NAME), # perhaps an oai_admins method with default logic settings.admins? 'admins': (email for name, email in settings.ADMINS), 'earliest_date': '1990-02-01T12:00:00Z', # placeholder # should probably be a class variable/configuration 'deleted': 'no', # no, transient, persistent (?) # class-level variable/configuration (may affect templates also) 'granularity': 'YYYY-MM-DDThh:mm:ssZ', # or YYYY-MM-DD # class-level config? 'compression': 'deflate', # gzip? - optional # description - optional # (place-holder values from OAI docs example) 'identifier_scheme': 'oai', 'repository_identifier': "{}".format(RDFRecord.get_rdf_base_url(prepend_scheme=True)), 'identifier_delimiter': '_', 'sample_identifier': '{}_spec_localId'.format(settings.SITE_NAME) } return self.render_to_response(identify_data)
def test_store_remote_cached_resource(self): test_uri = "http://nl.dbpedia.org/resource/Ton_Smits" resource = CacheResource.get_remote_lod_resource(test_uri) store = rdfstore._rdfstore_test assert len(resource) > 0 store._clear_all() graph_store = store.get_graph_store cache_graph = "http://{}/resource/cache#graph".format(RDFRecord.get_rdf_base_url()) self.assertFalse( store.ask( query="where {{<{}> ?p ?o}}".format(test_uri) )) response = CacheResource.store_remote_cached_resource(resource, graph_store, cache_graph) assert response is not None assert response self.assertTrue( store.ask( query="where {{<{}> ?p ?o}}".format(test_uri) ) ) # cacheUrl is no longer being added self.assertFalse( store.ask( query="where {{<{}> <http://schemas.delving.org/nave/terms/cacheUrl> ?o}}".format( test_uri) ) )
def generate_proxyfield_uri(self, label, language=None): label = label.replace(' ', '_') if language: label = "{}/{}".format(language, label) return "{}/resource/dataset/{}/{}".format( RDFRecord.get_rdf_base_url(prepend_scheme=True), self.spec, label )
def get_resolved_uri(context, uri): """Returns resolved uri, or Cached URI.""" request = context['request'] request_base = urlparse(request.build_absolute_uri()).netloc rdf_base = urlparse(uri).netloc if request_base in settings.RDF_ROUTED_ENTRY_POINTS and rdf_base in RDFRecord.get_rdf_base_url(): resolved_uri = uri.replace(rdf_base, request_base) elif rdf_base not in request_base: resolved_uri = get_cache_url(uri) else: return uri return resolved_uri
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.base_uri = r'{}/resource'.format(RDFRecord.get_rdf_base_url(prepend_scheme=True)) if self.get_namespace_prefix(): namespace_string = 'http://{}/resource/ns/{}/'.format( RDF_BASE_URL.replace("http://", ""), self.get_namespace_prefix() ) self.ns = Namespace(namespace_string) self.rdf_type_base = Namespace("{}/{}/".format(self.base_uri, self.get_rdf_type().lower())) if namespace_string not in settings.RDF_SUPPORTED_NAMESPACES: namespace_manager.bind(self.get_namespace_prefix(), self.ns) self.ns_dict = dict(list(namespace_manager.namespaces())) self.graph = None