def testIdentity(self): """Does identity pass on return values unchanged? """ # Succeed after 5 iterations. after = 5 tree = owyl.identity(owyl.succeedAfter(after=after)) v = owyl.visit(tree) for x in xrange(after): self.assertEqual(v.next(), None) self.assertEqual(v.next(), True) v = owyl.visit(tree) for x in xrange(after): self.assertEqual(v.next(), None) self.assertEqual(v.next(), True) tree = owyl.identity(owyl.failAfter(after=after)) v = owyl.visit(tree) for x in xrange(after): self.assertEqual(v.next(), None) self.assertEqual(v.next(), False) v = owyl.visit(tree) for x in xrange(after): self.assertEqual(v.next(), None) self.assertEqual(v.next(), False)
def testDescriptionSmallTree(self): tree = owyl.sequence(owyl.failAfter(after=10), owyl.log('How did you execute me?')) viztree = OwylTree(tree) structure = truncate(viztree.get_structure(), ['name', 'desc', 'children']) self.assertEquals(structure, {'name': 'sequence', 'desc': '', 'children': [{'name': 'failAfter', 'desc': '10', 'children': []}, {'name': 'log', 'desc': 'How did you execute me?', 'children': []}]})
def testParallel_DelayedFailure(self): """Can parallel fail if child fails later (all succeed)? """ # Fail after 5 iterations. after = 5 tree = owyl.parallel(owyl.succeed(), owyl.failAfter(after=after), policy=owyl.PARALLEL_SUCCESS.REQUIRE_ALL) v = owyl.visit(tree) results = [x for x in v if x is not None] self.assertEqual(results, [False]) v = owyl.visit(tree) results = [x for x in v if x is not None] self.assertEqual(results, [False])