Use new context creation functions to attach context to a json structure.
authorDiane Trout <diane@ghic.org>
Fri, 17 Jan 2014 00:19:31 +0000 (16:19 -0800)
committerDiane Trout <diane@ghic.org>
Fri, 17 Jan 2014 00:19:31 +0000 (16:19 -0800)
htsworkflow/submission/encoded.py
htsworkflow/submission/test/test_encoded.py

index 507271355988db469a83cb34560c8fb15cabaf93..f113bebd36121d5e403754caeb236e61697fcb88 100644 (file)
@@ -109,7 +109,7 @@ class ENCODED:
             self.username = authenticators[0]
             self.password = authenticators[2]
 
-    def add_jsonld_context(self, tree, contexts, base):
+    def add_jsonld_context(self, tree, default_base):
         """Add contexts to various objects in the tree.
 
         tree is a json tree returned from the DCC's encoded database.
@@ -118,11 +118,10 @@ class ENCODED:
         base, if supplied allows setting the base url that relative
             urls will be resolved against.
         """
-        tree['@context'] = contexts[None]
-        tree['@context']['@base'] = base
-        self.add_jsonld_child_context(tree, contexts)
+        self.add_jsonld_child_context(tree, default_base)
+        self.add_jsonld_namespaces(tree['@context'])
 
-    def add_jsonld_child_context(self, obj, contexts):
+    def add_jsonld_child_context(self, obj, default_base):
         '''Add JSON-LD context to the encoded JSON.
 
         This is recursive because some of the IDs were relative URLs
@@ -205,7 +204,7 @@ class ENCODED:
         '''
         url = self.prepare_url(obj_id)
         json = self.get_json(obj_id, **kwargs)
-        self.add_jsonld_context(json, self.context, url)
+        self.add_jsonld_context(json, url)
         return json
 
     def get_object_type(self, obj):
index 5e0e69b961f9aa8a82ad1563f1c4780f233b60f6..21eed840e351a64fdbe47fcd6d48e192d07aafb3 100644 (file)
@@ -110,7 +110,7 @@ class TestEncoded(TestCase):
 
         url = encode.prepare_url('/libraries/ENCLB044ZZZ/?format=json&embed=False')
         schema_url = encode.get_schema_url(obj)
-        encode.add_jsonld_context(obj, encode.context, url)
+        encode.add_jsonld_context(obj, url)
 
         self.assertEqual(obj['biosample']['@context']['@base'], bio_base)
         self.assertEqual(obj['@context']['@vocab'], schema_url)