示例#1
0
    def testWrappers(self):
        image = ImageI()
        info = image._field_info

        assert info.name.wrapper == rstring
        assert info.acquisitionDate.wrapper == rtime

        assert not info.name.nullable
        assert info.acquisitionDate.nullable

        image.setAcquisitionDate("1", wrap=True)
        assert type(image.acquisitionDate) == type(rtime(0))

        # The following causes pytest to fail!
        # image.setAcquisitionDate("", wrap=True)

        # Note: collections still don't work well
        if False:
            image.addPixels(PixelsI())
            image.setPixels(0, "Pixels:1", wrap=True)
            assert type(image.pixels) == omero.model.PixelsI

            image.setPixels(0, "Pixels", wrap=True)
            image.setPixels(0, "Unknown", wrap=True)

        link = DatasetImageLinkI()
        link.setParent("Dataset:1")
        link.setChild("Image:1")
示例#2
0
 def testUnloadSet(self):
     img = ImageI()
     self.assert_(img.sizeOfPixels() >= 0)
     img.addPixels(PixelsI())
     self.assert_(1 == img.sizeOfPixels())
     img.unloadPixels()
     self.assert_(img.sizeOfPixels() < 0)
示例#3
0
 def testUnloadSet(self):
     img = ImageI()
     assert img.sizeOfPixels() >= 0
     img.addPixels(PixelsI())
     assert 1 == img.sizeOfPixels()
     img.unloadPixels()
     assert img.sizeOfPixels() < 0
示例#4
0
 def testClearSet(self):
     img = ImageI()
     self.assert_(img.sizeOfPixels() >= 0)
     img.addPixels(PixelsI())
     self.assert_(1 == img.sizeOfPixels())
     img.clearPixels()
     self.assert_(img.sizeOfPixels() >= 0)
     self.assert_(0 == img.sizeOfPixels())
示例#5
0
 def testUnloadCheckPtr(self):
     img = ImageI()
     self.assert_(img.isLoaded())
     self.assert_(img.getDetails())  # details are auto instantiated
     self.assert_(not img.getName())  # no other single-valued field is
     img.unload()
     self.assert_(not img.isLoaded())
     self.assertRaises(omero.UnloadedEntityException, img.getDetails)
示例#6
0
 def testClearSet(self):
     img = ImageI()
     assert img.sizeOfPixels() >= 0
     img.addPixels(PixelsI())
     assert 1 == img.sizeOfPixels()
     img.clearPixels()
     assert img.sizeOfPixels() >= 0
     assert 0 == img.sizeOfPixels()
示例#7
0
 def testCreateAfterBlitzPort(self):
     ipojo = self.client.sf.getContainerService()
     i = ImageI()
     i.setName(rstring("name"))
     i.setAcquisitionDate(rtime(0))
     i = ipojo.createDataObject(i, None)
     o = i.getDetails().owner
     self.assertEquals(-1, o.sizeOfGroupExperimenterMap())
示例#8
0
 def testIterators(self):
     d = DatasetI()
     image = ImageI()
     image.linkDataset(d)
     it = image.iterateDatasetLinks()
     count = 0
     for i in it:
         count += 1
     self.assert_(count == 1)
示例#9
0
 def testUnloadedCtor(self):
     img = ImageI(rlong(1), False)
     self.assert_(not img.isLoaded())
     try:
         self.assert_(img.sizeOfDatasetLinks() < 0)
         self.fail("Should throw")
     except:
         # Is true, but can't test it.
         pass
示例#10
0
 def testUnloadedCtor(self):
     img = ImageI(rlong(1), False)
     assert not img.isLoaded()
     try:
         assert img.sizeOfDatasetLinks() < 0
         assert False, "Should throw"
     except:
         # Is true, but can't test it.
         pass
示例#11
0
    def testRemoveFromSet(self):
        pix = PixelsI()
        img = ImageI()
        assert img.sizeOfPixels() >= 0

        img.addPixels(pix)
        assert 1 == img.sizeOfPixels()

        img.removePixels(pix)
        assert 0 == img.sizeOfPixels()
示例#12
0
    def testRemoveFromSet(self):
        pix = PixelsI()
        img = ImageI()
        self.assert_(img.sizeOfPixels() >= 0)

        img.addPixels(pix)
        self.assert_(1 == img.sizeOfPixels())

        img.removePixels(pix)
        self.assert_(0 == img.sizeOfPixels())
示例#13
0
 def testGetAttrGood(self):
     i = ImageI()
     self.assert_(i.loaded)
     self.assert_(i.isLoaded())
     self.assert_(not i.name)
     i.name = rstring("name")
     self.assert_(i.name)
     i.setName(None)
     self.assert_(not i.getName())
     i.copyAnnotationLinks()
     i.linkAnnotation(omero.model.BooleanAnnotationI())
示例#14
0
 def testSequences(self):
     img = ImageI()
     assert img.sizeOfAnnotationLinks() >= 0
     img.linkAnnotation(None)
     img.unload()
     try:
         assert not img.sizeOfAnnotationLinks() >= 0
         assert len(img.copyAnnotationLinks()) == 0
         assert False, "can't reach here"
     except:
         # These are true, but can't be tested
         pass
示例#15
0
 def testSequences(self):
     img = ImageI()
     self.assert_(img.sizeOfAnnotationLinks() >= 0)
     img.linkAnnotation(None)
     img.unload()
     try:
         self.assert_(not img.sizeOfAnnotationLinks() >= 0)
         self.assert_(len(img.copyAnnotationLinks()) == 0)
         self.fail("can't reach here")
     except:
         # These are true, but can't be tested
         pass
示例#16
0
    def test1184(self):
        uuid = self.uuid()
        client = self.new_client(perms="rw----")

        share = client.sf.getShareService()
        query = client.sf.getQueryService()
        update = client.sf.getUpdateService()
        admin = client.sf.getAdminService()
        cont = client.sf.getContainerService()

        ds = DatasetI()
        ds.setName(rstring('test1184-ds-%s' % (uuid)))

        for i in range(1, 2001):
            img = ImageI()
            img.setName(rstring('img1184-%s' % (uuid)))
            img.setAcquisitionDate(rtime(time.time()))
            # Saving in one go
            #dil = DatasetImageLinkI()
            #dil.setParent(ds)
            #dil.setChild(img)
            #update.saveObject(dil)
            ds.linkImage(img)
        ds = update.saveAndReturnObject(ds)

        c = cont.getCollectionCount(ds.__class__.__name__, ("imageLinks"),
                                    [ds.id.val], None)
        self.assert_(c[ds.id.val] == 2000)

        page = 1
        p = omero.sys.Parameters()
        p.map = {}
        p.map["eid"] = rlong(admin.getEventContext().userId)
        p.map["oid"] = rlong(ds.id.val)
        if page is not None:
            f = omero.sys.Filter()
            f.limit = rint(24)
            f.offset = rint((int(page) - 1) * 24)
            p.theFilter = f

        sql = "select im from Image im join fetch im.details.owner join fetch im.details.group " \
              "left outer join fetch im.datasetLinks dil left outer join fetch dil.parent d " \
              "where d.id = :oid and im.details.owner.id=:eid order by im.id asc"

        start = time.time()
        res = query.findAllByQuery(sql, p)
        self.assertEquals(24, len(res))
        end = time.time()
        elapsed = end - start
        self.assertTrue(
            elapsed < 3.0,
            "Expected the test to complete in < 3 seconds, took: %f" % elapsed)
示例#17
0
 def testGetAttrBad(self):
    i = ImageI()
    def assign_loaded():
         i.loaded = False
    self.assertRaises( AttributeError, assign_loaded )
    self.assertRaises( AttributeError, lambda: i.foo )
    def assign_foo():
         i.foo = 1
    self.assertRaises( AttributeError, assign_foo )
    self.assertRaises( AttributeError, lambda: i.annotationLinks )
    self.assertRaises( AttributeError, lambda: i.getAnnotationLinks() )
    def assign_links():
         i.annotationLinks = []
    self.assertRaises( AttributeError, assign_links)
示例#18
0
    def test2327(self):

        ### create two users in two groups
        client_share1, user1 = self.new_client_and_user()
        client_share2, user2 = self.new_client_and_user()

        ## login as user1
        share1 = client_share1.sf.getShareService()
        update1 = client_share1.sf.getUpdateService()

        # create image
        img = ImageI()
        img.setName(rstring('test2327'))
        img.setAcquisitionDate(rtime(0))
        img = update1.saveAndReturnObject(img)
        img.unload()

        # create share
        description = "my description"
        timeout = None
        objects = [img]
        experimenters = [user2]
        guests = []
        enabled = True
        sid = share1.createShare(description, timeout, objects, experimenters,
                                 guests, enabled)
        self.assert_(len(share1.getContents(sid)) == 1)
        # add comment by the owner
        share1.addComment(sid, 'test comment by the owner %s' % user1.id.val)

        ## login as user2
        share2 = client_share2.sf.getShareService()
        query2 = client_share2.sf.getQueryService()

        l = share2.getMemberShares(False)
        self.assertEquals(1, len(l))

        # add comment by the member
        share2.addComment(sid,
                          'test comment by the member %s' % (user2.id.val))

        # Don't have to activate share2

        #get comments
        # by user1
        c1 = len(share1.getComments(sid))
        self.assertEquals(2, c1)
        # by user2
        c2 = len(share2.getComments(sid))
        self.assertEquals(2, c2)
示例#19
0
    def testLinkingAndUnlinking(self):
        d = DatasetI()
        i = ImageI()

        d.linkImage(i)
        assert d.sizeOfImageLinks() == 1
        d.unlinkImage(i)
        assert d.sizeOfImageLinks() == 0

        d = DatasetI()
        i = ImageI()
        d.linkImage(i)
        assert i.sizeOfDatasetLinks() == 1
        i.unlinkDataset(d)
        assert d.sizeOfImageLinks() == 0

        d = DatasetI()
        i = ImageI()
        dil = DatasetImageLinkI()
        dil.link(d, i)
        d.addDatasetImageLink(dil, False)
        assert d.sizeOfImageLinks() == 1
        assert i.sizeOfDatasetLinks() == 0
示例#20
0
    def testLinkingAndUnlinking(self):
        d = DatasetI()
        i = ImageI()

        d.linkImage(i)
        self.assert_(d.sizeOfImageLinks() == 1)
        d.unlinkImage(i)
        self.assert_(d.sizeOfImageLinks() == 0)

        d = DatasetI()
        i = ImageI()
        d.linkImage(i)
        self.assert_(i.sizeOfDatasetLinks() == 1)
        i.unlinkDataset(d)
        self.assert_(d.sizeOfImageLinks() == 0)

        d = DatasetI()
        i = ImageI()
        dil = DatasetImageLinkI()
        dil.link(d, i)
        d.addDatasetImageLink(dil, False)
        self.assert_(d.sizeOfImageLinks() == 1)
        self.assert_(i.sizeOfDatasetLinks() == 0)
示例#21
0
    def test1157(self):
        uuid = self.root.sf.getAdminService().getEventContext().sessionUuid
        share = self.root.sf.getShareService()

        ### create two users in one group
        client_share1, user1 = self.new_client_and_user()
        client_share2, user2 = self.new_client_and_user()

        ## login as user1
        share1 = client_share1.sf.getShareService()
        update1 = client_share1.sf.getUpdateService()

        # create image
        img = ImageI()
        img.setName(rstring('test1154-img-%s' % (uuid)))
        img.setAcquisitionDate(rtime(0))
        img = update1.saveAndReturnObject(img)
        img.unload()

        # create share
        description = "my description"
        timeout = None
        objects = [img]
        experimenters = [user2]
        guests = []
        enabled = True
        sid = share1.createShare(description, timeout, objects, experimenters,
                                 guests, enabled)
        self.assert_(len(share1.getContents(sid)) == 1)
        # add comment by the owner
        share.addComment(sid, 'test comment by the owner %s' % (uuid))

        ## login as user2
        share2 = client_share2.sf.getShareService()
        query2 = client_share2.sf.getQueryService()

        # add comment by the member
        share2.addComment(sid, 'test comment by the member %s' % (uuid))

        # Don't have to activate share2

        #get comments
        # by user1
        c1 = len(share.getComments(sid))
        self.assertEquals(2, c1)
        # by user2
        c2 = len(share2.getComments(sid))
        self.assertEquals(2, c2)
示例#22
0
    def test1154(self):
        uuid = self.root.sf.getAdminService().getEventContext().sessionUuid

        ### create two users in one group
        client_share1, user1 = self.new_client_and_user()
        client_share2, user2 = self.new_client_and_user()

        ## login as user1
        share1 = client_share1.sf.getShareService()
        update1 = client_share1.sf.getUpdateService()

        # create image
        img = ImageI()
        img.setName(rstring('test1154-img-%s' % (uuid)))
        img.setAcquisitionDate(rtime(0))
        img = update1.saveAndReturnObject(img)
        img.unload()

        # create share
        description = "my description"
        timeout = None
        objects = [img]
        experimenters = [user2]
        guests = []
        enabled = True
        sid = share1.createShare(description, timeout, objects, experimenters,
                                 guests, enabled)

        self.assertEquals(1, len(share1.getContents(sid)))

        ## login as user2
        share2 = client_share2.sf.getShareService()
        query2 = client_share2.sf.getQueryService()

        content = share2.getContents(sid)
        self.assertEquals(1, len(share2.getContents(sid)))

        # get shared image when share is activated
        share2.activate(sid)

        p = omero.sys.Parameters()
        p.map = {}
        p.map["ids"] = rlist([rlong(img.id.val)])
        sql = "select im from Image im where im.id in (:ids) order by im.name"
        res = query2.findAllByQuery(sql, p)
        self.assertEquals(1, len(res))
        for e in res:
            self.assert_(e.id.val == img.id.val)
示例#23
0
    def testGetAttrBad(self):
        i = ImageI()

        def assign_loaded():
            i.loaded = False
        pytest.raises(AttributeError, assign_loaded)
        pytest.raises(AttributeError, lambda: i.foo)

        def assign_foo():
            i.foo = 1
        pytest.raises(AttributeError, assign_foo)
        pytest.raises(AttributeError, lambda: i.annotationLinks)
        pytest.raises(AttributeError, lambda: i.getAnnotationLinks())

        def assign_links():
            i.annotationLinks = []
        pytest.raises(AttributeError, assign_links)
示例#24
0
    def test_none_pixel_size(self):
        """
        Tests display of core metatada still works even when image
        doesn't have pixels data
        """
        img = ImageI()
        img.setName(rstring("no_pixels"))
        img.setDescription(rstring("empty image without pixels data"))

        conn = omero.gateway.BlitzGateway(client_obj=self.client)
        img = conn.getUpdateService().saveAndReturnObject(img)

        request_url = reverse('load_metadata_details',
                              args=['image', img.id.val])

        # Just check that the metadata panel is loaded
        rsp = get(self.django_client, request_url, status_code=200)
        assert "no_pixels" in rsp.content.decode("utf-8")
示例#25
0
    def testBasicUsage(self):
        usr = self.client.sf.getAdminService().getEventContext().userId

        img = ImageI()
        img.name = rstring("name")
        img.acquisitionDate = rtime(0)
        tag = TagAnnotationI()
        img.linkAnnotation(tag)

        img = self.client.sf.getUpdateService().saveAndReturnObject(img)

        img = self.client.sf.getQueryService().findByQuery(
            """
        select img from Image img
        join fetch img.annotationLinksCountPerOwner
        where img.id = %s
        """ % (img.id.val), None)
        self.assert_(img)
        self.assert_(img.getAnnotationLinksCountPerOwner()[usr] > 0)
示例#26
0
    def testAccessors(self):
        name = rstring("name")
        img = ImageI()
        self.assert_(not img.getName())
        img.setName(name)
        self.assert_(img.getName())
        name = img.getName()
        self.assert_(name.val == "name")
        self.assert_(name == name)

        img.setName(rstring("name2"))
        self.assert_(img.getName().val == "name2")
        self.assert_(img.getName())

        img.unload()
        try:
            self.assert_(not img.getName())
            self.fail("should fail")
        except:
            # Is true, but cannot test
            pass
示例#27
0
    def testAccessors(self):
        name = rstring("name")
        img = ImageI()
        assert not img.getName()
        img.setName(name)
        assert img.getName()
        name = img.getName()
        assert name.val == "name"
        assert name == name

        img.setName(rstring("name2"))
        assert img.getName().val == "name2"
        assert img.getName()

        img.unload()
        try:
            assert not img.getName()
            assert False, "should fail"
        except:
            # Is true, but cannot test
            pass
示例#28
0
    def test1163(self):
        uuid = self.uuid()
        new_gr1 = self.new_group(perms="rw----")
        client_share1, new_exp_obj = self.new_client_and_user(new_gr1)
        update1 = client_share1.sf.getUpdateService()
        search1 = client_share1.sf.createSearchService()

        # create image and index
        img = ImageI()
        img.setName(rstring('test1154-img-%s' % (uuid)))
        img.setAcquisitionDate(rtime(0))
        img = update1.saveAndReturnObject(img)
        img.unload()
        self.index(img)

        # search
        search1.onlyType('Image')
        search1.addOrderByAsc("name")
        search1.byFullText("test*")
        self.assertTrue(search1.hasNext())
        res = search1.results()
        self.assertEquals(1, len(res))
示例#29
0
    def test8118(self):
        uuid = self.root.sf.getAdminService().getEventContext().sessionUuid
        share_serv = self.root.sf.getShareService()
        update_serv = self.root.sf.getUpdateService()

        # create user
        user1 = self.new_user()

        # create image
        img = ImageI()
        img.setName(rstring('test8118-img-%s' % (uuid)))
        img.setAcquisitionDate(rtime(0))
        img = update_serv.saveAndReturnObject(img)
        img.unload()

        # create share
        description = "my description"
        timeout = None
        objects = [img]
        experimenters = [user1]
        guests = []
        enabled = True
        sid = share_serv.createShare(description, timeout, objects,
                                     experimenters, guests, enabled)
        suuid = share_serv.getShare(sid).uuid

        self.assertEquals(1, len(share_serv.getContents(sid)))

        # join share
        user1_client = omero.client()
        try:
            user1_client.createSession(suuid, suuid)
            user1_share = user1_client.sf.getShareService()
            user1_share.activate(sid)
            self.assertEquals(1, len(user1_share.getContents(sid)))
        finally:
            user1_client.__del__()
示例#30
0
    def test1071_1(self):
        admin = self.root.sf.getAdminService()

        common_group = self.new_group(perms="rwrw--")
        c1 = self.new_client(common_group)
        c2 = self.new_client(common_group)

        c1_pojos = c1.sf.getContainerService()
        c1_query = c1.sf.getQueryService()
        c1_update = c1.sf.getUpdateService()
        c1_uuid = c1.sf.getAdminService().getEventContext().sessionUuid

        c2_pojos = c2.sf.getContainerService()
        c2_query = c2.sf.getQueryService()
        c2_update = c2.sf.getUpdateService()
        c2_uuid = c2.sf.getAdminService().getEventContext().sessionUuid

        #projects
        pr1 = ProjectI()
        pr1.setName(rstring('test1071-pr1-%s' % (c1_uuid)))
        pr1 = c1_update.saveAndReturnObject(pr1)
        pr1.unload()

        pr2 = ProjectI()
        pr2.setName(rstring('test1071-pr2-%s' % (c2_uuid)))
        pr2 = c2_update.saveAndReturnObject(pr2)
        pr2.unload()

        #datasets
        ds1 = DatasetI()
        ds1.setName(rstring('test1071-ds1-%s' % (c1_uuid)))
        ds1 = c1_update.saveAndReturnObject(ds1)
        ds1.unload()

        ds2 = DatasetI()
        ds2.setName(rstring('test1071-ds2-%s' % (c2_uuid)))
        ds2 = c2_update.saveAndReturnObject(ds2)
        ds2.unload()

        #images
        im2 = ImageI()
        im2.setName(rstring('test1071-im2-%s' % (c2_uuid)))
        im2.acquisitionDate = rtime(0)
        im2 = c2_update.saveAndReturnObject(im2)
        im2.unload()

        #links
        # im2 owned by u2
        #
        # im2   -> ds2 --> pr2 (owned by u2)
        #      |
        #      \-> ds1 --> pr1 (owned by u1)
        #
        pdl1 = ProjectDatasetLinkI()
        pdl1.setParent(pr1)
        pdl1.setChild(ds1)
        c1_update.saveObject(pdl1)

        pdl2 = ProjectDatasetLinkI()
        pdl2.setParent(pr2)
        pdl2.setChild(ds2)
        c2_update.saveObject(pdl2)

        dil2 = DatasetImageLinkI()
        dil2.setParent(ds2)
        dil2.setChild(im2)
        c2_update.saveObject(dil2)

        dil1 = DatasetImageLinkI()
        dil1.setParent(ds1)
        dil1.setChild(im2)
        c1_update.saveObject(dil1)

        #test:
        hier = c2_pojos.findContainerHierarchies("Project", [long(im2.id.val)],
                                                 None)

        self.assertEquals(2, len(hier),
                          "size of hier != 2: %s" % [type(x) for x in hier])
        for c in hier:
            if c.id.val == pr1.id.val and isinstance(c, ProjectI):
                self.assertEquals(1, c.sizeOfDatasetLinks())
                for pdl in c.copyDatasetLinks():
                    self.assertEquals(1, pdl.child.sizeOfImageLinks())
                    for dil in pdl.child.copyImageLinks():
                        self.assert_(dil.child.id.val == im2.id.val)
            elif c.id.val == pr2.id.val and isinstance(c, ProjectI):
                self.assertEquals(1, c.sizeOfDatasetLinks())
            elif c.id.val == ds3.id.val and isinstance(c, DatasetI):
                self.assertEquals(1, c.sizeOfImageLinks())