def testUnsetAttributeWithCustomQuery(self): storage = AnnotationStorage() query = {'getId' : 'd1'} actions = ({'fieldName' : 'text', 'unset' : True, 'storage' : storage, },) self.execute(query, actions) self.assertEqual(storage.get('text', self.folder['d2']).getRaw(), 'Body two') with self.assertRaises(AttributeError): storage.get('text', self.folder['d1'])
def testTransform(self): storage = AnnotationStorage() query = {} actions = ({ 'fieldName': 'text', 'storage': storage, 'transform': makeUpper }, ) self.execute(query, actions) self.assertEqual( storage.get('text', self.folder['d1']).getRaw(), 'BODY ONE') self.assertEqual( storage.get('text', self.folder['d2']).getRaw(), 'BODY TWO')
def testAbortObject(self): storage = AnnotationStorage() query = {} actions = ({ 'fieldName': 'text', 'transform': makeUpper, 'storage': storage, }, ) self.execute(query, actions, conditionallyAbortObject) self.assertEqual( storage.get('text', self.folder['d1']).getRaw(), 'Body one') self.assertEqual( storage.get('text', self.folder['d2']).getRaw(), 'BODY TWO')
def testNewStorageOnly(self): storage = AnnotationStorage() newStorage = AttributeStorage() query = {} actions = ({"fieldName": "text", "storage": storage, "newStorage": newStorage},) self.execute(query, actions) self.assertEqual(getattr(self.folder["d1"], "text").getRaw(), "Body one") self.assertEqual(getattr(self.folder["d2"], "text").getRaw(), "Body two") try: storage.get("text", self.folder["d1"]) except AttributeError: pass else: self.fail()
def testAttributeRenaming(self): storage = AnnotationStorage() query = {} actions = ({ 'fieldName': 'text', 'newFieldName': 'bodyText', 'storage': storage }, ) self.execute(query, actions) self.assertEqual( storage.get('bodyText', self.folder['d1']).getRaw(), 'Body one') self.assertEqual( storage.get('bodyText', self.folder['d2']).getRaw(), 'Body two') self.assertRaises(AttributeError, storage.get, 'text', self.folder['d1'])
def get(self, name, instance, **kwargs): """XXX TODO Retrieve video from Kaltura, wrap it in a blob wrapper, and return it """ value = AnnotationStorage.get(self, name, instance, **kwargs) #get video file from Kaltura and replace the file in the blob. return value
def testAttributeRenamingAndTransform(self): storage = AnnotationStorage() query = {} actions = ({"fieldName": "text", "newFieldName": "bodyText", "storage": storage, "transform": makeUpper},) self.execute(query, actions) self.assertEqual(storage.get("bodyText", self.folder["d1"]).getRaw(), "BODY ONE") self.assertEqual(storage.get("bodyText", self.folder["d2"]).getRaw(), "BODY TWO")
def testUnsetAttributeWithCustomQuery(self): storage = AnnotationStorage() query = {"getId": "d1"} actions = ({"fieldName": "text", "unset": True, "storage": storage},) self.execute(query, actions) self.assertEqual(storage.get("text", self.folder["d2"]).getRaw(), "Body two") self.assertRaises(AttributeError, storage.get, "text", self.folder["d1"])
def testAbortObject(self): storage = AnnotationStorage() query = {} actions = ({"fieldName": "text", "transform": makeUpper, "storage": storage},) self.execute(query, actions, conditionallyAbortObject) self.assertEqual(storage.get("text", self.folder["d1"]).getRaw(), "Body one") self.assertEqual(storage.get("text", self.folder["d2"]).getRaw(), "BODY TWO")
def testNewStorageOnly(self): storage = AnnotationStorage() newStorage = AttributeStorage() query = {} actions = ({'fieldName' : 'text', 'storage' : storage, 'newStorage' : newStorage },) self.execute(query, actions) self.assertEqual(getattr(self.folder['d1'], 'text').getRaw(), 'Body one') self.assertEqual(getattr(self.folder['d2'], 'text').getRaw(), 'Body two') try: storage.get('text', self.folder['d1']) except AttributeError: pass else: self.fail()
def testAttributeRenaming(self): storage = AnnotationStorage() query = {} actions = ({"fieldName": "text", "newFieldName": "bodyText", "storage": storage},) self.execute(query, actions) self.assertEqual(storage.get("bodyText", self.folder["d1"]).getRaw(), "Body one") self.assertEqual(storage.get("bodyText", self.folder["d2"]).getRaw(), "Body two") self.assertRaises(AttributeError, storage.get, "text", self.folder["d1"])
def testTransform(self): storage = AnnotationStorage() query = {} actions = ({'fieldName' : 'text', 'storage' : storage, 'transform' : makeUpper },) self.execute(query, actions) self.assertEqual(storage.get('text', self.folder['d1']).getRaw(), 'BODY ONE') self.assertEqual(storage.get('text', self.folder['d2']).getRaw(), 'BODY TWO')
def testAbortObject(self): storage = AnnotationStorage() query = {} actions = ({'fieldName' : 'text', 'transform' : makeUpper, 'storage' : storage, },) self.execute(query, actions, conditionallyAbortObject) self.assertEqual(storage.get('text', self.folder['d1']).getRaw(), 'Body one') self.assertEqual(storage.get('text', self.folder['d2']).getRaw(), 'BODY TWO')
def testAttributeRenaming(self): storage = AnnotationStorage() query = {} actions = ({'fieldName' : 'text', 'newFieldName' : 'bodyText', 'storage' : storage },) self.execute(query, actions) self.assertEqual(storage.get('bodyText', self.folder['d1']).getRaw(), 'Body one') self.assertEqual(storage.get('bodyText', self.folder['d2']).getRaw(), 'Body two') self.assertRaises(AttributeError, storage.get, 'text', self.folder['d1'])
def get(self, name, instance, **kwargs): aws_utility = getUtility(IAWSFileClientUtility) if not aws_utility.active(): return AnnotationStorage.get(self, name, instance, **kwargs) file_ = AnnotationStorage.get(self, name, instance, **kwargs) request = instance.REQUEST if not isinstance(request, type('')) and \ request.get('%s_migrate' % name, '') or \ ('migrate' in kwargs and kwargs['migrate']): # check if object is already migrated if isinstance(file_, AWSFile): return file_ try: new_file_ = self._do_migrate(file_, instance) except (FileClientRemoveError, FileClientStoreError): return file_ AnnotationStorage.set(self, name, instance, new_file_, **kwargs) return new_file_ else: return file_