def test_lazy_do_not_reevaluate_node_if_same_execution(): evaluated = [] def func(txt): evaluated.append(txt) return txt pg = PortGraph() vid = pg.add_actor(FuncNode(func)) assert pg.actor(vid).is_lazy() algo = LazyEvaluation(pg) env = EvaluationEnvironment() ws = WorkflowState(pg) ws.store_param(pg.in_port(vid, 'txt'), 'toto', env.current_execution()) algo.eval(env, ws) assert len(evaluated) == 1 algo.eval_node(env, ws, vid) assert len(evaluated) == 1