예제 #1
0
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"
예제 #2
0
파일: oaipmh.py 프로젝트: delving/nave
    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)
예제 #3
0
 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)
         )
     )
예제 #4
0
파일: models.py 프로젝트: delving/nave
 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
     )
예제 #5
0
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
예제 #6
0
파일: models.py 프로젝트: delving/nave
 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