Esempio n. 1
0
 def test_serialize_and_deserialize_dont_balk_if_time_field_absent(self):
     from niprov.formatjson import JsonFormat
     serializer = JsonFormat(self.dependencies)
     record = {}
     img1 = self.imageWithProvenance(record)
     jsonrecord = serializer.serializeSingle(img1)
     out = serializer.deserialize(jsonrecord)
     self.assertEqual(img1.provenance, out.provenance)
Esempio n. 2
0
 def test_serialize_and_deserialize_dont_balk_if_time_field_absent(self):
     from niprov.formatjson import JsonFormat  
     serializer = JsonFormat(self.dependencies)
     record = {}
     img1 = self.imageWithProvenance(record)
     jsonrecord = serializer.serializeSingle(img1)
     out = serializer.deserialize(jsonrecord)
     self.assertEqual(img1.provenance, out.provenance)
Esempio n. 3
0
 def test_swallows_object_ids(self):
     from bson.objectid import ObjectId
     from niprov.formatjson import JsonFormat  
     serializer = JsonFormat(self.dependencies)
     record = {}
     record['_id'] = ObjectId('564168f2fb481f480891263c')
     record['_versions'] = [{'_id':ObjectId('564168f2fb481f480891263c')}]
     out = serializer.serializeList([self.imageWithProvenance(record)])
     self.assertNotIn('_id', json.loads(out)[0])
     self.assertNotIn('_id', json.loads(out)[0]['_versions'][0])
Esempio n. 4
0
 def test_Deals_with_versions(self):
     from niprov.formatjson import JsonFormat
     serializer = JsonFormat(self.dependencies)
     record = {}
     dtnow = datetime.now()
     record['_versions'] = [{'acquired': dtnow}, {'added': dtnow}]
     jsonStr = serializer.serializeSingle(self.imageWithProvenance(record))
     out = serializer.deserialize(jsonStr)
     self.assertEqual(out.provenance['_versions'][-1]['added'], dtnow)
     self.assertEqual(out.provenance['_versions'][-2]['acquired'], dtnow)
Esempio n. 5
0
 def test_swallows_object_ids(self):
     from bson.objectid import ObjectId
     from niprov.formatjson import JsonFormat
     serializer = JsonFormat(self.dependencies)
     record = {}
     record['_id'] = ObjectId('564168f2fb481f480891263c')
     record['_versions'] = [{'_id': ObjectId('564168f2fb481f480891263c')}]
     out = serializer.serializeList([self.imageWithProvenance(record)])
     self.assertNotIn('_id', json.loads(out)[0])
     self.assertNotIn('_id', json.loads(out)[0]['_versions'][0])
Esempio n. 6
0
 def test_Deals_with_versions(self):
     from niprov.formatjson import JsonFormat  
     serializer = JsonFormat(self.dependencies)
     record = {}
     dtnow = datetime.now()
     record['_versions'] = [{'acquired':dtnow}, 
                           {'added':dtnow}]
     jsonStr = serializer.serializeSingle(self.imageWithProvenance(record))
     out = serializer.deserialize(jsonStr)
     self.assertEqual(out.provenance['_versions'][-1]['added'], dtnow)
     self.assertEqual(out.provenance['_versions'][-2]['acquired'], dtnow)
Esempio n. 7
0
 def test_serialize_makes_args_kwargs_values_strings(self):
     from niprov.formatjson import JsonFormat  
     class CustomType(object):
         def __str__(self):
             return '<CustomType object>'
     serializer = JsonFormat(self.dependencies)
     record = {}
     ct1 = CustomType()
     ct2 = CustomType()
     ct3 = CustomType()
     record['args'] = [1.23, ct1]
     record['kwargs'] = {'one':ct2, 'two':4.56}
     record['_versions'] = [{'args':[7.89, ct3]}]
     out = serializer.serializeSingle(self.imageWithProvenance(record))
     self.assertEqual(json.loads(out)['args'], 
         [1.23, str(ct1)])
     self.assertEqual(json.loads(out)['kwargs'], 
         {'one':str(ct2), 'two':4.56})
Esempio n. 8
0
    def test_serialize_makes_args_kwargs_values_strings(self):
        from niprov.formatjson import JsonFormat

        class CustomType(object):
            def __str__(self):
                return '<CustomType object>'

        serializer = JsonFormat(self.dependencies)
        record = {}
        ct1 = CustomType()
        ct2 = CustomType()
        ct3 = CustomType()
        record['args'] = [1.23, ct1]
        record['kwargs'] = {'one': ct2, 'two': 4.56}
        record['_versions'] = [{'args': [7.89, ct3]}]
        out = serializer.serializeSingle(self.imageWithProvenance(record))
        self.assertEqual(json.loads(out)['args'], [1.23, str(ct1)])
        self.assertEqual(
            json.loads(out)['kwargs'], {
                'one': str(ct2),
                'two': 4.56
            })
Esempio n. 9
0
 def create(self, formatName):
     if formatName == 'json':
         return JsonFormat(self.dependencies)
     if formatName == 'xml':
         return XmlFormat(self.dependencies)
     if formatName == 'narrated':
         return NarratedFormat()
     if formatName == 'simple':
         return SimpleFormat()
     if formatName == 'dict':
         return DictFormat()
     if formatName == 'object':
         return ObjectFormat()
     if formatName == 'picture':
         return PictureCache(self.dependencies)
     raise ValueError('Unknown format: ' + str(formatName))