def test_parallel_evaluation_is_correct(graph, thread_pool_executor): res = evaluate(graph.output, args={graph.input: "input_value"}, executor=thread_pool_executor) assert res[0] == "op0_return_value" assert res[1] == "op1_return_value" graph.output[0].op._run.assert_called_once_with(arg="input_value") graph.output[1].op._run.assert_called_once_with("input_value", arg1="op0_return_value")
def test_sequential_evaluation_is_correct(graph): res = evaluate(graph.output, args={graph.input: "input_value"}) assert res[0] == "op0_return_value" assert res[1] == "op1_return_value" graph.output[0].op._run.assert_called_once_with(arg="input_value") graph.output[1].op._run.assert_called_once_with("input_value", arg1="op0_return_value")
def test_evaluation_is_lazy(graph): res = evaluate([graph.output[0]], args={graph.input: "input_value"}) operation = graph.output[1].op assert res[0] == "op0_return_value" assert not operation._run.called
def test_solve_is_lazy(graph): _ = evaluate([graph.output[0]], args={graph.input: "input_value"}) operation = graph.output[1].op assert not operation._run.called
def test_exception_is_reraised(graph_raising): with pytest.raises(RuntimeError) as err: _ = evaluate([graph_raising.output[0]], args={graph_raising.input: 0}) assert hasattr(err, "__cause__")
def test_no_deprecation_if_evaluating_with_complete_arguments(graph): with pytest.warns(None) as record: _ = evaluate([graph.output[0]], args={graph.input: 0}) assert len(record) == 0
def test_deprecation_if_evaluating_with_incomplete_arguments(graph): with pytest.deprecated_call(): _ = evaluate([graph.output[0]], args={})