# Path: pymonet/utils.py
# def cond(condition_list: List[Tuple[
#     Callable[[T], bool],
#     Callable,
# ]]):
#     """
#     Function for return function depended on first function argument
#     cond get list of two-item tuples,
#     first is condition_function, second is execute_function.
#     Returns this execute_function witch first condition_function return truly value.
# 
#     :param condition_list: list of two-item tuples (condition_function, execute_function)
#     :type condition_list: List[(Function, Function)]
#     :returns: Returns this execute_function witch first condition_function return truly value
#     :rtype: Function
#     """
#     def result(*args):
#         for (condition_function, execute_function) in condition_list:
#             if condition_function(*args):
#                 return execute_function(*args)
# 
#     return result


from pymonet.utils import cond
import pytest
    def cond_function(self, *args):
        assert args == (mocked_args, )
        return True

    def cond_function_false(self, *args):
        assert args == (mocked_args, )
        return False

    def execute_function(self, *args):
        print(args)
        assert args == (mocked_args, )
        return 42

    def execute_function1(self, *args):
        assert args == (mocked_args, )
        return 0


@pytest.fixture
def cond_spy(mocker):
    cond_spy = CondSpy()
    mocker.spy(cond_spy, 'cond_function')
    mocker.spy(cond_spy, 'cond_function_false')
    mocker.spy(cond_spy, 'execute_function')
    mocker.spy(cond_spy, 'execute_function1')

    return cond_spy


def test_cond_should_return_function_with_calls_first_passed_function(cond_spy):

# Path: pymonet/utils.py
# def cond(condition_list: List[Tuple[
#     Callable[[T], bool],
#     Callable,
# ]]):
#     """
#     Function for return function depended on first function argument
#     cond get list of two-item tuples,
#     first is condition_function, second is execute_function.
#     Returns this execute_function witch first condition_function return truly value.
# 
#     :param condition_list: list of two-item tuples (condition_function, execute_function)
#     :type condition_list: List[(Function, Function)]
#     :returns: Returns this execute_function witch first condition_function return truly value
#     :rtype: Function
#     """
#     def result(*args):
#         for (condition_function, execute_function) in condition_list:
#             if condition_function(*args):
#                 return execute_function(*args)
# 
#     return result


# Path: tests/test_utils_cond.py
from pymonet.utils import cond
import pytest

    def cond_function(self, *args):
        assert args == (mocked_args, )
        return True

    def cond_function_false(self, *args):
        assert args == (mocked_args, )
        return False

    def execute_function(self, *args):
        print(args)
        assert args == (mocked_args, )
        return 42

    def execute_function1(self, *args):
        assert args == (mocked_args, )
        return 0


@pytest.fixture
def cond_spy(mocker):
    cond_spy = CondSpy()
    mocker.spy(cond_spy, 'cond_function')
    mocker.spy(cond_spy, 'cond_function_false')
    mocker.spy(cond_spy, 'execute_function')
    mocker.spy(cond_spy, 'execute_function1')

    return cond_spy


def test_cond_should_return_function_with_calls_first_passed_function(cond_spy):

    assert cond([