def test_library_rdf(self):
import RDF
from htsworkflow.util.rdfhelp import get_model, \
+ dump_model, \
fromTypedNode, \
load_string_into_model, \
rdfNS, \
self.assertEqual(fromTypedNode(r['made_by']), u'Igor')
state = validate_xhtml(content)
- if state is not None: self.assertTrue(state)
+ if state is not None:
+ self.assertTrue(state)
+
+ # validate a library page.
+ from htsworkflow.util.rdfhelp import add_default_schemas
+ from htsworkflow.util.rdfinfer import Infer
+ add_default_schemas(model)
+ inference = Infer(model)
+ ignored = {'Missing type for: http://localhost/'}
+ errmsgs = [msg for msg in inference.run_validation()
+ if msg not in ignored ]
+ self.assertEqual(len(errmsgs), 0)
def test_library_index_rdfa(self):
from htsworkflow.util.rdfhelp import \
- add_default_schemas, get_model, load_string_into_model
-
+ add_default_schemas, get_model, load_string_into_model, \
+ dump_model
from htsworkflow.util.rdfinfer import Infer
model = get_model()
self.assertEqual(response.status_code, 200)
load_string_into_model(model, 'rdfa', response.content)
- errmsgs = list(inference.run_validation())
- self.assertEqual(len(errmsgs), 2)
- # didn't feel like giving the index page a type since all
- # its doing is showing a list of things.
- for err in errmsgs:
- self.assertEqual(err, 'Missing type for: http://localhost/')
+ ignored = {'Missing type for: http://localhost/'}
+ errmsgs = [msg for msg in inference.run_validation()
+ if msg not in ignored ]
+ self.assertEqual(len(errmsgs), 0)
body = """prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix libns: <http://jumpgate.caltech.edu/wiki/LibraryOntology#>
- select ?library ?library_id ?name ?species
+ select ?library ?library_id ?name ?species_name
where {
?library a libns:Library .
OPTIONAL { ?library libns:library_id ?library_id . }
- OPTIONAL { ?library libns:species ?species . }
+ OPTIONAL { ?library libns:species_name ?species_name . }
OPTIONAL { ?library libns:name ?name . }
}"""
- bindings = set(['library', 'library_id', 'name', 'species'])
+ bindings = set(['library', 'library_id', 'name', 'species_name'])
query = RDF.SPARQLQuery(body)
count = 0
for r in query.execute(model):
state = validate_xhtml(response.content)
if state is not None: self.assertTrue(state)
+
+
# The django test runner flushes the database between test suites not cases,
# so to be more compatible with running via nose we flush the database tables
# of interest before creating our sample data.
self.check_literal_object(model, ['400'], p=libNS['gel_cut'])
self.check_literal_object(model, ['Igor'], p=libNS['made_by'])
self.check_literal_object(model, ['Paired End Multiplexed Sp-BAC'], p=libNS['name'])
- self.check_literal_object(model, ['Drosophila melanogaster'], p=libNS['species'])
+ self.check_literal_object(model, ['Drosophila melanogaster'], p=libNS['species_name'])
self.check_uri_object(model,
[u'http://localhost/lane/1193'],
storage = RDF.MemoryStorage()
model = RDF.Model(storage)
return model
-