def test_annotateAndAnnotated(self): # There's a bug somewhere which means annotating the table with the # version annotation, then using the table as a FileAnnotation on # an object, causes the version annotation to be lost # Closing and reopening the table seems to work (see # FeatureTable.createTable) cli, sess = self.create_client() ft = FeatureTable(client=cli, tableName=self.tableName) fts = ['a [0]', 'a [1]', 'b [0]'] ft.createTable(fts, version=self.version) tid = ft.tc.tableId self.assertEqual(self.version, unwrapVersion(ft.versiontag)) vertag = WndcharmStorage.getVersion(ft.conn, 'OriginalFile', tid) self.assertEqual(self.version, unwrapVersion(vertag)) p = omero.model.ProjectI() p.setName(wrap('tmp')) p = self.sess.getUpdateService().saveAndReturnObject(p) pid = unwrap(p.getId()) p = ft.conn.getObject('Project', pid) WndcharmStorage.addFileAnnotationTo(ft.tc, p) vertag = WndcharmStorage.getVersion(ft.conn, 'OriginalFile', tid) self.assertEqual(self.version, unwrapVersion(vertag)) self.delete('/Project', pid) self.delete('/OriginalFile', tid)
def checkClassifierTablesVersion(self, ct): self.assertEqual(unwrapVersion(ct.versiontag), self.version) verF = WndcharmStorage.getVersion( ct.tcF.conn, 'OriginalFile', ct.tcF.tableId) self.assertEqual(unwrapVersion(verF), self.version) verW = WndcharmStorage.getVersion( ct.tcW.conn, 'OriginalFile', ct.tcW.tableId) self.assertEqual(unwrapVersion(verW), self.version) verL = WndcharmStorage.getVersion( ct.tcL.conn, 'OriginalFile', ct.tcL.tableId) self.assertEqual(unwrapVersion(verL), self.version)
def test_versionAnnotation(self): version = str(uuid.uuid1()) created = WndcharmStorage.createVersionAnnotation(self.conn, version) retrieved = WndcharmStorage.getVersionAnnotation(self.conn, version) self.assertEqual(unwrap(created.getNs()), WndcharmStorage.WNDCHARM_VERSION_NAMESPACE) self.assertEqual(unwrapVersion(created), version) self.assertEqual(unwrap(retrieved.getNs()), WndcharmStorage.WNDCHARM_VERSION_NAMESPACE) self.assertEqual(unwrapVersion(retrieved), version) pid = self.create_project('versionAnnotation') self.assertIsNone(WndcharmStorage.getVersion(self.conn, 'Project', pid)) WndcharmStorage.addTagTo(self.conn, retrieved, 'Project', pid) a = WndcharmStorage.getVersion(self.conn, 'Project', pid) self.assertEqual(unwrap(a.getNs()), WndcharmStorage.WNDCHARM_VERSION_NAMESPACE) self.assertEqual(unwrapVersion(a), version) self.delete('/Project', pid)
def test_createTable(self): tid = self.create_table() ft = FeatureTable(client=self.cli, tableName=self.tableName) ft.openTable(tid) self.assertEqual(self.version, unwrapVersion(ft.versiontag)) vertag = WndcharmStorage.getVersion(ft.conn, 'OriginalFile', tid) self.assertEqual(self.version, unwrapVersion(vertag)) headers = ft.tc.getHeaders() self.assertEqual(len(headers), 3) self.assertEqual([h.name for h in headers], ['id', 'a', 'b']) self.assertEqual([h.size for h in headers[1:]], [2, 1])
def test_getVersion(self): version = str(uuid.uuid1()) tableid = self.create_table() file = omero.model.OriginalFileI(tableid, False) version = str(uuid.uuid1()) tagid = self.create_tag(version, WndcharmStorage.WNDCHARM_VERSION_NAMESPACE) tag = omero.model.TagAnnotationI(tagid, False) link = omero.model.OriginalFileAnnotationLinkI() link.setChild(tag) link.setParent(file) link = self.sess.getUpdateService().saveAndReturnObject(link) retrieved = WndcharmStorage.getVersion( self.conn, 'OriginalFile', unwrap(file.getId())) self.assertEqual(unwrapVersion(retrieved), version)