Regression
OmeroPy.test.integration.gatewaytest.test_get_objects.TestFindObject.testFindAnnotation (from pytest)
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.modelStacktrace
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