aboutsummaryrefslogtreecommitdiff
path: root/test/test_shex.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_shex.py')
-rw-r--r--test/test_shex.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/test_shex.py b/test/test_shex.py
new file mode 100644
index 0000000..ead2396
--- /dev/null
+++ b/test/test_shex.py
@@ -0,0 +1,35 @@
+import schema_salad.schema
+import schema_salad.ref_resolver
+import schema_salad.jsonld_context
+import pkg_resources
+import logging
+import traceback
+# from rdflib import Graph, Namespace
+from pyshex.evaluate import evaluate
+import unittest
+
+class TestStringMethods(unittest.TestCase):
+
+ def test_schema(self):
+ with open("bh20sequploader/bh20seq-schema.yml") as schema_resource:
+ metadata_schema = schema_salad.schema.load_schema("https://raw.githubusercontent.com/arvados/bh20-seq-resource/master/bh20sequploader/bh20seq-schema.yml")
+ (document_loader,
+ avsc_names,
+ schema_metadata,
+ metaschema_loader) = metadata_schema
+ print(metadata_schema)
+ assert(isinstance(avsc_names, schema_salad.avro.schema.Names))
+ metadatafile = "test/data/input/TN_UT2.yaml"
+ doc, metadata = schema_salad.schema.load_and_validate(document_loader, avsc_names, metadatafile, True)
+ print(doc)
+ g = schema_salad.jsonld_context.makerdf("workflow", doc, document_loader.ctx)
+ shex = pkg_resources.resource_stream(__name__, "../bh20sequploader/bh20seq-shex.rdf").read().decode("utf-8")
+ rslt, reason = evaluate(g, shex, doc["id"], "https://raw.githubusercontent.com/arvados/bh20-seq-resource/master/bh20sequploader/bh20seq-shex.rdf#submissionShape")
+
+ g.serialize(format="ntriples")
+
+ if not rslt:
+ raise Exception(reason)
+
+if __name__ == '__main__':
+ unittest.main()