{
  "_class" : "hudson.tasks.junit.CaseResult",
  "testActions" : [
    
  ],
  "age" : 2,
  "className" : "OmeroPy.test.integration.gatewaytest.test_annotation",
  "duration" : 1.663,
  "errorDetails" : "KeyError: None",
  "errorStackTrace" : "author_testimg_generated = <_ImageWrapper id=5672>\u000a\u000a    def testTimestampAnnotation(author_testimg_generated):\u000a        now = time.time()\u000a        t = datetime.datetime.fromtimestamp(int(now))\u000a>       _testAnnotation(author_testimg_generated,\u000a                        omero.gateway.TimestampAnnotationWrapper,\u000a                        TESTANN_NS, t)\u000a\u000atest/integration/gatewaytest/test_annotation.py:130: \u000a_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \u000a\u000aobj = <_ImageWrapper id=5672>\u000aannclass = <class 'omero.gateway.TimestampAnnotationWrapper'>\u000ans = 'omero.gateway.test_annotation'\u000avalue = datetime.datetime(2026, 8, 29, 14, 55, 52), sameOwner = False\u000atestOwner = None\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" : "testTimestampAnnotation",
  "properties" : {
    
  },
  "rerunFailures" : [
    
  ],
  "skipped" : False,
  "skippedMessage" : None,
  "status" : "FAILED",
  "stderr" : None,
  "stdout" : None
}