def test_delete(self, owned): if owned: tablesess = self.sess else: user2 = self.create_user_same_group() tablesess = self.create_client_session(user2) iid1 = unwrap(TableStoreHelper.create_image(self.sess).getId()) iid2 = unwrap(TableStoreHelper.create_image(self.sess).getId()) store = FeatureTable( tablesess, self.name, self.ft_space, self.ann_space) store.new_table([('Long', 'id')], ['x']) ofile = store.get_table().getOriginalFile() link1 = store.create_file_annotation( 'Image', iid1, self.ann_space, ofile) link2 = store.create_file_annotation( 'Image', iid2, self.ann_space, ofile) if not owned: store.close() # Reopen the store with a different session store = FeatureTable( self.sess, self.name, self.ft_space, self.ann_space) store.open_table(unwrap(ofile.getId())) def get(obj): # Fetch the latest copy of an object return self.sess.getQueryService().find( 'omero.model.%s' % obj.__class__.__name__, unwrap(obj.getId())) assert get(link1) is not None assert get(link1.getParent()) is not None assert get(link1.getChild()) assert get(link1.getChild().getFile()) assert get(link2) assert get(link2.getParent()) assert get(link2.getChild()) assert get(link2.getChild().getFile()) if owned: store.delete() assert get(link1) is None assert get(link1.getParent()) assert get(link1.getChild()) is None assert get(link1.getChild().getFile()) is None assert get(link2) is None assert get(link2.getParent()) assert get(link2.getChild()) is None assert get(link2.getChild().getFile()) is None else: with pytest.raises( OmeroTablesFeatureStore.FeaturePermissionException): store.delete() store.close()
def test_create_file_annotation(self): tid, tcols, meta, ftnames = TableStoreHelper.create_table( self.sess, self.ft_space, self.name, [1], 'multi', False) imageid = unwrap(TableStoreHelper.create_image(self.sess).getId()) ofile = self.sess.getQueryService().get( 'omero.model.OriginalFile', tid) store = FeatureTable( self.sess, self.name, self.ft_space, self.ann_space) assert store._file_annotation_exists( 'Image', imageid, self.ann_space, tid) == [] link = store.create_file_annotation( 'Image', imageid, self.ann_space, ofile) p = link.getParent() c = link.getChild() assert isinstance(p, omero.model.Image) assert isinstance(c, omero.model.FileAnnotation) assert unwrap(p.getId()) == imageid assert unwrap(c.getFile().getId()) == tid links = store._file_annotation_exists( 'Image', imageid, self.ann_space, tid) assert len(links) == 1 assert links[0].__class__ == link.__class__ and links[0].id == link.id store.close()
def test_delete(self, owned): if owned: tablesess = self.sess else: user2 = self.create_user_same_group() tablesess = self.create_client_session(user2) iid1 = unwrap(TableStoreHelper.create_image(self.sess).getId()) iid2 = unwrap(TableStoreHelper.create_image(self.sess).getId()) store = FeatureTable(tablesess, self.name, self.ft_space, self.ann_space) store.new_table([("Long", "id")], ["x"]) ofile = store.get_table().getOriginalFile() link1 = store.create_file_annotation("Image", iid1, self.ann_space, ofile) link2 = store.create_file_annotation("Image", iid2, self.ann_space, ofile) if not owned: store.close() # Reopen the store with a different session store = FeatureTable(self.sess, self.name, self.ft_space, self.ann_space) store.open_table(unwrap(ofile.getId())) def get(obj): # Fetch the latest copy of an object return self.sess.getQueryService().find("omero.model.%s" % obj.__class__.__name__, unwrap(obj.getId())) assert get(link1) is not None assert get(link1.getParent()) is not None assert get(link1.getChild()) assert get(link1.getChild().getFile()) assert get(link2) assert get(link2.getParent()) assert get(link2.getChild()) assert get(link2.getChild().getFile()) if owned: store.delete() assert get(link1) is None assert get(link1.getParent()) assert get(link1.getChild()) is None assert get(link1.getChild().getFile()) is None assert get(link2) is None assert get(link2.getParent()) assert get(link2.getChild()) is None assert get(link2.getChild().getFile()) is None else: with pytest.raises(OmeroTablesFeatureStore.FeaturePermissionException): store.delete() store.close()
def test_create_file_annotation(self): tid, tcols, meta, ftnames = TableStoreHelper.create_table( self.sess, self.ft_space, self.name, [1], "multi", False ) imageid = unwrap(TableStoreHelper.create_image(self.sess).getId()) ofile = self.sess.getQueryService().get("omero.model.OriginalFile", tid) store = FeatureTable(self.sess, self.name, self.ft_space, self.ann_space) assert store._file_annotation_exists("Image", imageid, self.ann_space, tid) == [] link = store.create_file_annotation("Image", imageid, self.ann_space, ofile) p = link.getParent() c = link.getChild() assert isinstance(p, omero.model.Image) assert isinstance(c, omero.model.FileAnnotation) assert unwrap(p.getId()) == imageid assert unwrap(c.getFile().getId()) == tid links = store._file_annotation_exists("Image", imageid, self.ann_space, tid) assert len(links) == 1 assert links[0].__class__ == link.__class__ and links[0].id == link.id store.close()