Skip to content

Regression

OmeroPy.test.integration.gatewaytest.test_get_objects.TestFindObject.testFindAnnotation (from pytest)

Failing for the past 1 build (Since #449 )
Took 1.3 sec.

Error Message

AssertionError: assert False
 +  where False = isinstance(object #0 (::omero::model::FileAnnotation)\n{\n    _id = object #1 (::omero::RLong)\n    {\n        _val = 1\n    }\n    _details = object #2 (::omero::model::Details)\n    {\n        _owner = object #3 (::omero::model::Experimenter)\n        {\n            _id = object #4 (::omero::RLong)\n            {\n                _val = 43\n            }\n            _details = object #5 (::omero::model::Details)\n            {\n                _owner = <nil>\n                _group = <nil>\n                _creationEvent = <nil>\n                _updateEvent = <nil>\n                _permissions = object #6 (::omero::model::Permissions)\n                {\n                    _restrictions = \n                    {\n                        [0] = False\n                        [1] = True\n                        [2] = True\n                        [3] = False\n                        [4] = True\n                        [5] = True\n                    }\n                    _extendedRestrictions = \n                    {\n                    }\n                    _perm1 = -56\n                }\n                _externalInfo = <nil>\n                _call = \n                {\n                    key = omero.client.uuid\n     ... -56\n            }\n        }\n    }\n    _loaded = True\n    _version = <object #9>\n    _ns = object #38 (::omero::RString)\n    {\n        _val = openmicroscopy.org/omero/experimenter/photo\n    }\n    _name = <nil>\n    _description = <nil>\n    _annotationLinksSeq = \n    {\n    }\n    _annotationLinksLoaded = False\n    _annotationLinksCountPerOwner = \n    {\n    }\n    _file = object #39 (::omero::model::OriginalFile)\n    {\n        _id = object #40 (::omero::RLong)\n        {\n            _val = 80\n        }\n        _details = <nil>\n        _loaded = False\n        _version = <nil>\n        _pixelsFileMapsSeq = \n        {\n        }\n        _pixelsFileMapsLoaded = False\n        _pixelsFileMapsCountPerOwner = \n        {\n        }\n        _path = <nil>\n        _repo = <nil>\n        _size = <nil>\n        _atime = <nil>\n        _mtime = <nil>\n        _ctime = <nil>\n        _hasher = <nil>\n        _hash = <nil>\n        _mimetype = <nil>\n        _filesetEntriesSeq = \n        {\n        }\n        _filesetEntriesLoaded = False\n        _annotationLinksSeq = \n        {\n        }\n        _annotationLinksLoaded = False\n        _annotationLinksCountPerOwner = \n        {\n        }\n        _name = <nil>\n    }\n}, <class 'omero.model.MapAnnotationI'>)
 +    where object #0 (::omero::model::FileAnnotation)\n{\n    _id = object #1 (::omero::RLong)\n    {\n        _val = 1\n    }\n    _details = object #2 (::omero::model::Details)\n    {\n        _owner = object #3 (::omero::model::Experimenter)\n        {\n            _id = object #4 (::omero::RLong)\n            {\n                _val = 43\n            }\n            _details = object #5 (::omero::model::Details)\n            {\n                _owner = <nil>\n                _group = <nil>\n                _creationEvent = <nil>\n                _updateEvent = <nil>\n                _permissions = object #6 (::omero::model::Permissions)\n                {\n                    _restrictions = \n                    {\n                        [0] = False\n                        [1] = True\n                        [2] = True\n                        [3] = False\n                        [4] = True\n                        [5] = True\n                    }\n                    _extendedRestrictions = \n                    {\n                    }\n                    _perm1 = -56\n                }\n                _externalInfo = <nil>\n                _call = \n                {\n                    key = omero.client.uuid\n     ... -56\n            }\n        }\n    }\n    _loaded = True\n    _version = <object #9>\n    _ns = object #38 (::omero::RString)\n    {\n        _val = openmicroscopy.org/omero/experimenter/photo\n    }\n    _name = <nil>\n    _description = <nil>\n    _annotationLinksSeq = \n    {\n    }\n    _annotationLinksLoaded = False\n    _annotationLinksCountPerOwner = \n    {\n    }\n    _file = object #39 (::omero::model::OriginalFile)\n    {\n        _id = object #40 (::omero::RLong)\n        {\n            _val = 80\n        }\n        _details = <nil>\n        _loaded = False\n        _version = <nil>\n        _pixelsFileMapsSeq = \n        {\n        }\n        _pixelsFileMapsLoaded = False\n        _pixelsFileMapsCountPerOwner = \n        {\n        }\n        _path = <nil>\n        _repo = <nil>\n        _size = <nil>\n        _atime = <nil>\n        _mtime = <nil>\n        _ctime = <nil>\n        _hasher = <nil>\n        _hash = <nil>\n        _mimetype = <nil>\n        _filesetEntriesSeq = \n        {\n        }\n        _filesetEntriesLoaded = False\n        _annotationLinksSeq = \n        {\n        }\n        _annotationLinksLoaded = False\n        _annotationLinksCountPerOwner = \n        {\n        }\n        _name = <nil>\n    }\n} = <MapAnnotationWrapper id=1>._obj
 +    and   <class 'omero.model.MapAnnotationI'> = <module 'omero.model' from '/home/omero/workspace/OMERO-test-integration/.venv3/lib64/python3.11/site-packages/omero/model/__init__.py'>.MapAnnotationI
 +      where <module 'omero.model' from '/home/omero/workspace/OMERO-test-integration/.venv3/lib64/python3.11/site-packages/omero/model/__init__.py'> = omero.model

Stacktrace

self = <test.integration.gatewaytest.test_get_objects.TestFindObject object at 0x7f7c4c007090>
gatewaywrapper = <omero.gateway.pytest_fixtures.GatewayWrapper object at 0x7f7c5de9ca10>

    def testFindAnnotation(self, gatewaywrapper):
        gatewaywrapper.loginAsAuthor()
        # start by deleting any tag created by this method that may have been
        # left behind
        tag_value = "FindThisTag"
        find_ns = "omero.gateway.test.test_find_annotations"
        find_tag = gatewaywrapper.gateway.getObjects(
            "Annotation", attributes={"textValue": tag_value, "ns": find_ns})
        ids = [t._obj.id.val for t in find_tag]
        if ids:
            gatewaywrapper.gateway.deleteObjects("Annotation", ids, wait=True)
    
        # create Tag
        tag = omero.gateway.TagAnnotationWrapper(gatewaywrapper.gateway)
        tag.setNs(find_ns)
        tag.setValue(tag_value)
        tag.save()
        tagId = tag.getId()
    
        # findObject by name
        find_tag = gatewaywrapper.gateway.getObject(
            "Annotation", attributes={"textValue": tag_value})
        assert find_tag is not None
        assert find_tag.getValue() == tag_value
    
        # find by namespace
        find_tag = gatewaywrapper.gateway.getObject(
            "Annotation", attributes={"ns": find_ns})
        assert find_tag is not None
        assert find_tag.getNs() == find_ns
    
        # find by text value
        find_tag = gatewaywrapper.gateway.getObject(
            "TagAnnotation", attributes={"textValue": tag_value})
        assert find_tag is not None
        assert find_tag.getValue() == tag_value
    
        # create some other annotations... (not linked!)
        longAnn = omero.gateway.LongAnnotationWrapper(gatewaywrapper.gateway)
        longAnn.setValue(12345)
        longAnn.save()
        longId = longAnn.getId()
        boolAnn = omero.gateway.BooleanAnnotationWrapper(
            gatewaywrapper.gateway)
        boolAnn.setValue(True)
        boolAnn.save()
        boolId = boolAnn.getId()
        commAnn = omero.gateway.CommentAnnotationWrapper(
            gatewaywrapper.gateway)
        commAnn.setValue("This is a blitz gatewaytest Comment.")
        commAnn.save()
        commId = commAnn.getId()
        fileAnn = omero.gateway.FileAnnotationWrapper(gatewaywrapper.gateway)
        # An original file object needs to be linked to the annotation or it
        # will fail to be loaded on getObject(s).
        fileObj = omero.model.OriginalFileI()
        fileObj = omero.gateway.OriginalFileWrapper(
            gatewaywrapper.gateway, fileObj)
        fileObj.setName(omero.rtypes.rstring('a'))
        fileObj.setPath(omero.rtypes.rstring('a'))
        fileObj.setHash(omero.rtypes.rstring('a'))
        fileObj.setSize(omero.rtypes.rlong(0))
        fileObj.save()
        fileAnn.setFile(fileObj)
        fileAnn.save()
        fileId = fileAnn.getId()
        doubleAnn = omero.gateway.DoubleAnnotationWrapper(
            gatewaywrapper.gateway)
        doubleAnn.setValue(1.23456)
        doubleAnn.save()
        doubleId = doubleAnn.getId()
        termAnn = omero.gateway.TermAnnotationWrapper(gatewaywrapper.gateway)
        termAnn.setValue("Metaphase")
        termAnn.save()
        termId = termAnn.getId()
        timeAnn = omero.gateway.TimestampAnnotationWrapper(
            gatewaywrapper.gateway)
        timeAnn.setValue(1000)
        timeAnn.save()
        timeId = timeAnn.getId()
        # map annotation...
        mapAnn = omero.gateway.MapAnnotationWrapper(gatewaywrapper.gateway)
        mapAnn.setValue([("key1", "value1"), ("key2", "value2")])
        mapAnn.save()
        mapId = mapAnn.getId()
    
        # list annotations of various types - check they include ones from
        # above
        tags = list(gatewaywrapper.gateway.getObjects("TagAnnotation"))
        for t in tags:
            assert t.OMERO_TYPE == tag.OMERO_TYPE
        assert tagId in [t.getId() for t in tags]
        longs = list(gatewaywrapper.gateway.getObjects("LongAnnotation"))
        for lng in longs:
            assert lng.OMERO_TYPE == longAnn.OMERO_TYPE
            assert isinstance(lng._obj, omero.model.LongAnnotationI)
        assert longId in [lng.getId() for lng in longs]
        bools = list(gatewaywrapper.gateway.getObjects("BooleanAnnotation"))
        for b in bools:
            assert b.OMERO_TYPE == boolAnn.OMERO_TYPE
            assert isinstance(b._obj, omero.model.BooleanAnnotationI)
        assert boolId in [b.getId() for b in bools]
        comms = list(gatewaywrapper.gateway.getObjects("CommentAnnotation"))
        for c in comms:
            assert c.OMERO_TYPE == commAnn.OMERO_TYPE
            assert isinstance(c._obj, omero.model.CommentAnnotationI)
        assert commId in [c.getId() for c in comms]
        files = list(gatewaywrapper.gateway.getObjects("FileAnnotation"))
        for f in files:
            assert f.OMERO_TYPE == fileAnn.OMERO_TYPE
            assert isinstance(f._obj, omero.model.FileAnnotationI)
        assert fileId in [f.getId() for f in files]
        doubles = list(gatewaywrapper.gateway.getObjects("DoubleAnnotation"))
        for d in doubles:
            assert d.OMERO_TYPE == doubleAnn.OMERO_TYPE
            assert isinstance(d._obj, omero.model.DoubleAnnotationI)
        assert doubleId in [d.getId() for d in doubles]
        terms = list(gatewaywrapper.gateway.getObjects("TermAnnotation"))
        for t in terms:
            assert t.OMERO_TYPE == termAnn.OMERO_TYPE
            assert isinstance(t._obj, omero.model.TermAnnotationI)
        assert termId in [t.getId() for t in terms]
        times = list(gatewaywrapper.gateway.getObjects("TimestampAnnotation"))
        for t in times:
            assert t.OMERO_TYPE == timeAnn.OMERO_TYPE
            assert isinstance(t._obj, omero.model.TimestampAnnotationI)
        assert timeId in [t.getId() for t in times]
    
        # Manually load MapAnnotations...
        queryService = gatewaywrapper.gateway.getQueryService()
        map_query = ("select obj from MapAnnotation obj "
                     "join fetch obj.details.owner as owner "
                     "join fetch obj.details.creationEvent")
        all_query = ("select obj from Annotation obj "
                     "join fetch obj.details.owner as owner "
                     "join fetch obj.details.creationEvent")
        params = omero.sys.ParametersI()
        map_anns = queryService.findAllByQuery(map_query, params)
        all_anns = queryService.findAllByQuery(all_query, params)
        assert len(all_anns) > len(map_anns)
        for m in map_anns:
            assert isinstance(m, omero.model.MapAnnotationI)
        # test getObjects() from https://github.com/ome/omero-py/pull/464
        maps = list(gatewaywrapper.gateway.getObjects("MapAnnotation"))
        for m in maps:
            assert m.OMERO_TYPE == mapAnn.OMERO_TYPE
>           assert isinstance(m._obj, omero.model.MapAnnotationI)
E           AssertionError: assert False
E            +  where False = isinstance(object #0 (::omero::model::FileAnnotation)\n{\n    _id = object #1 (::omero::RLong)\n    {\n        _val = 1\n    }\n    _details = object #2 (::omero::model::Details)\n    {\n        _owner = object #3 (::omero::model::Experimenter)\n        {\n            _id = object #4 (::omero::RLong)\n            {\n                _val = 43\n            }\n            _details = object #5 (::omero::model::Details)\n            {\n                _owner = <nil>\n                _group = <nil>\n                _creationEvent = <nil>\n                _updateEvent = <nil>\n                _permissions = object #6 (::omero::model::Permissions)\n                {\n                    _restrictions = \n                    {\n                        [0] = False\n                        [1] = True\n                        [2] = True\n                        [3] = False\n                        [4] = True\n                        [5] = True\n                    }\n                    _extendedRestrictions = \n                    {\n                    }\n                    _perm1 = -56\n                }\n                _externalInfo = <nil>\n                _call = \n                {\n                    key = omero.client.uuid\n     ... -56\n            }\n        }\n    }\n    _loaded = True\n    _version = <object #9>\n    _ns = object #38 (::omero::RString)\n    {\n        _val = openmicroscopy.org/omero/experimenter/photo\n    }\n    _name = <nil>\n    _description = <nil>\n    _annotationLinksSeq = \n    {\n    }\n    _annotationLinksLoaded = False\n    _annotationLinksCountPerOwner = \n    {\n    }\n    _file = object #39 (::omero::model::OriginalFile)\n    {\n        _id = object #40 (::omero::RLong)\n        {\n            _val = 80\n        }\n        _details = <nil>\n        _loaded = False\n        _version = <nil>\n        _pixelsFileMapsSeq = \n        {\n        }\n        _pixelsFileMapsLoaded = False\n        _pixelsFileMapsCountPerOwner = \n        {\n        }\n        _path = <nil>\n        _repo = <nil>\n        _size = <nil>\n        _atime = <nil>\n        _mtime = <nil>\n        _ctime = <nil>\n        _hasher = <nil>\n        _hash = <nil>\n        _mimetype = <nil>\n        _filesetEntriesSeq = \n        {\n        }\n        _filesetEntriesLoaded = False\n        _annotationLinksSeq = \n        {\n        }\n        _annotationLinksLoaded = False\n        _annotationLinksCountPerOwner = \n        {\n        }\n        _name = <nil>\n    }\n}, <class 'omero.model.MapAnnotationI'>)
E            +    where object #0 (::omero::model::FileAnnotation)\n{\n    _id = object #1 (::omero::RLong)\n    {\n        _val = 1\n    }\n    _details = object #2 (::omero::model::Details)\n    {\n        _owner = object #3 (::omero::model::Experimenter)\n        {\n            _id = object #4 (::omero::RLong)\n            {\n                _val = 43\n            }\n            _details = object #5 (::omero::model::Details)\n            {\n                _owner = <nil>\n                _group = <nil>\n                _creationEvent = <nil>\n                _updateEvent = <nil>\n                _permissions = object #6 (::omero::model::Permissions)\n                {\n                    _restrictions = \n                    {\n                        [0] = False\n                        [1] = True\n                        [2] = True\n                        [3] = False\n                        [4] = True\n                        [5] = True\n                    }\n                    _extendedRestrictions = \n                    {\n                    }\n                    _perm1 = -56\n                }\n                _externalInfo = <nil>\n                _call = \n                {\n                    key = omero.client.uuid\n     ... -56\n            }\n        }\n    }\n    _loaded = True\n    _version = <object #9>\n    _ns = object #38 (::omero::RString)\n    {\n        _val = openmicroscopy.org/omero/experimenter/photo\n    }\n    _name = <nil>\n    _description = <nil>\n    _annotationLinksSeq = \n    {\n    }\n    _annotationLinksLoaded = False\n    _annotationLinksCountPerOwner = \n    {\n    }\n    _file = object #39 (::omero::model::OriginalFile)\n    {\n        _id = object #40 (::omero::RLong)\n        {\n            _val = 80\n        }\n        _details = <nil>\n        _loaded = False\n        _version = <nil>\n        _pixelsFileMapsSeq = \n        {\n        }\n        _pixelsFileMapsLoaded = False\n        _pixelsFileMapsCountPerOwner = \n        {\n        }\n        _path = <nil>\n        _repo = <nil>\n        _size = <nil>\n        _atime = <nil>\n        _mtime = <nil>\n        _ctime = <nil>\n        _hasher = <nil>\n        _hash = <nil>\n        _mimetype = <nil>\n        _filesetEntriesSeq = \n        {\n        }\n        _filesetEntriesLoaded = False\n        _annotationLinksSeq = \n        {\n        }\n        _annotationLinksLoaded = False\n        _annotationLinksCountPerOwner = \n        {\n        }\n        _name = <nil>\n    }\n} = <MapAnnotationWrapper id=1>._obj
E            +    and   <class 'omero.model.MapAnnotationI'> = <module 'omero.model' from '/home/omero/workspace/OMERO-test-integration/.venv3/lib64/python3.11/site-packages/omero/model/__init__.py'>.MapAnnotationI
E            +      where <module 'omero.model' from '/home/omero/workspace/OMERO-test-integration/.venv3/lib64/python3.11/site-packages/omero/model/__init__.py'> = omero.model

test/integration/gatewaytest/test_get_objects.py:307: AssertionError