{
  "_class" : "hudson.tasks.junit.CaseResult",
  "testActions" : [
    
  ],
  "age" : 1,
  "className" : "OmeroPy.test.integration.gatewaytest.test_annotation",
  "duration" : 3.605,
  "errorDetails" : "KeyError: None",
  "errorStackTrace" : "gatewaywrapper = <omero.gateway.pytest_fixtures.GatewayWrapper object at 0x7f46e7c60a50>\u000a\u000a    def testSameOwner(gatewaywrapper):\u000a        \"\"\"\u000a            tests project.linkAnnotation(sameOwner=False)\u000a            Tests sameOwner default is False (was True for 4.4.x but False in 5.0)\u000a        \"\"\"\u000a        gatewaywrapper.loginAsAdmin()\u000a    \u000a        gatewaywrapper.gateway.SERVICE_OPTS.setOmeroGroup(\"-1\")\u000a        p = gatewaywrapper.getTestProject2()\u000a        p.getDetails().owner.id.val\u000a    \u000a        def sameOwner(obj, ann):\u000a            assert obj.getDetails().owner.id.val == ann.getDetails().owner.id.val\u000a    \u000a        def differentOwner(obj, ann):\u000a            assert obj.getDetails().owner.id.val != ann.getDetails().owner.id.val\u000a    \u000a>       _testAnnotation(p,\u000a                        omero.gateway.CommentAnnotationWrapper,\u000a                        TESTANN_NS, 'some value',\u000a                        sameOwner=True, testOwner=sameOwner)\u000a\u000atest/integration/gatewaytest/test_annotation.py:104: \u000a_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \u000a\u000aobj = <_ProjectWrapper id=487>\u000aannclass = <class 'omero.gateway.CommentAnnotationWrapper'>\u000ans = 'omero.gateway.test_annotation', value = 'some value', sameOwner = True\u000atestOwner = <function testSameOwner.<locals>.sameOwner at 0x7f46fd0016c0>\u000a\u000a    def _testAnnotation(obj, annclass, ns, value, sameOwner=False,\u000a                        testOwner=None):\u000a        gateway = obj._conn\u000a        # Make sure it doesn't yet exist\u000a        obj.removeAnnotations(ns)\u000a        assert obj.getAnnotation(ns) is None\u000a        # Create new, link and check\u000a        ann = annclass(gateway)\u000a        ann.setNs(ns)\u000a        ann.setValue(value)\u000a        if sameOwner:\u000a            obj.linkAnnotation(ann, sameOwner=True)\u000a        else:\u000a            # checks that default sameOwner=False\u000a            obj.linkAnnotation(ann)\u000a        ann = obj.getAnnotation(ns)\u000a        # Make sure the group for the annotation is the same as the original\u000a        # object. (#120)\u000a        assert ann.getDetails().getGroup() == obj.getDetails().getGroup()\u000a        tval = hasattr(value, 'val') and value.val or value\u000a        assert ann.getValue() == value, '%s != %s' % (str(ann.getValue()),\u000a                                                      str(tval))\u000a        assert ann.getNs() == ns,  '%s != %s' % (str(ann.getNs()), str(ns))\u000a        if testOwner is not None:\u000a            testOwner(obj, ann)\u000a        # test conn.countAnnotations()\u000a        counts = gateway.countAnnotations(obj.OMERO_CLASS, [obj.id])\u000a        assert counts is not None\u000a        # Timestamp and Boolean not included in counts\u000a        if annclass.OMERO_CLASS not in [\"TimestampAnnotation\",\u000a                                        \"BooleanAnnotation\",\u000a                                        # LongAnnotation is only for 'rating'\u000a                                        \"LongAnnotation\"]:\u000a>           assert counts[annclass.OMERO_CLASS] >= 1.   # e.g. TagAnnotation: 1\u000a                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u000aE           KeyError: None\u000a\u000atest/integration/gatewaytest/test_annotation.py:59: KeyError",
  "failedSince" : 71,
  "flakyFailures" : [
    
  ],
  "name" : "testSameOwner",
  "properties" : {
    
  },
  "rerunFailures" : [
    
  ],
  "skipped" : False,
  "skippedMessage" : None,
  "status" : "FAILED",
  "stderr" : None,
  "stdout" : None
}