Example #1
0
def test_function_return_value_continue_no(first_router_from_devices_yaml,
                                           capsys, monkeypatch, c_map,
                                           commands_1, commands_2):
    # проверяем сообщения об ошибках, при условии,
    # что после первой команды с ошибкой, была сделана остановка
    monkeypatch.setattr("builtins.input", lambda x=None: "n")
    commands = commands_1 + commands_2

    return_value = task_19_2c.send_config_commands(
        first_router_from_devices_yaml, commands, log=False)

    assert return_value != None, "Функция ничего не возвращает"
    assert type(return_value) == tuple, "Функция должна возвращать кортеж"
    assert len(return_value) == 2 and all(
        type(item) == dict for item in
        return_value), "Функция должна возвращать кортеж с двумя словарями"
    return_good, return_bad = return_value
    if c_map[0] == "bad":
        commands_with_errors, correct_commands = commands_1, commands_2
        assert (list(return_good) == []
                and sorted(return_bad) == commands_with_errors[:1]
                ), "Функция возвращает неправильное значение"
    else:
        commands_with_errors, correct_commands = commands_2, commands_1
        assert (list(return_good) == correct_commands
                and list(return_bad) == commands_with_errors[:1]
                ), "Функция возвращает неправильное значение"
Example #2
0
def send_cfg_to_devices(devices_list, config_commands):
    result_correct = {}
    result_incorrect = {}
    for device in devices_list:
        ip = device['ip']
        result_correct[ip], result_incorrect[ip] = \
            send_config_commands(device, commands, verbose=False)
    return result_correct, result_incorrect
def test_function_return_value_continue_yes(first_router_from_devices_yaml,
                                            capsys, monkeypatch):
    # проверяем возвращаемое значение, при условии,
    # что было выбрано продолжать выполнять вcе команды
    monkeypatch.setattr('builtins.input', lambda x=None: 'y')

    return_value = task_19_2c.send_config_commands(
        first_router_from_devices_yaml, test_commands, verbose=False)

    assert return_value != None, "Функция ничего не возвращает"
    assert type(return_value) == tuple, "Функция должна возвращать кортеж"
    assert len(return_value) == 2 and all(type(item) == dict for item in return_value),\
            "Функция должна возвращать кортеж с двумя словарями"
    correct_good, correct_bad = correct_return_value
    return_good, return_bad = return_value
    assert return_good.keys() == correct_good.keys() and \
            return_bad.keys() == correct_bad.keys(),\
            "Функция возвращает неправильное значение"
def test_function_return_value_continue_no(first_router_from_devices_yaml,
                                           capsys, monkeypatch, commands,
                                           len_good, len_bad):
    # проверяем сообщения об ошибках, при условии,
    # что после первой команды с ошибкой, была сделана остановка
    monkeypatch.setattr("builtins.input", lambda x=None: "n")

    return_value = task_19_2c.send_config_commands(
        first_router_from_devices_yaml, commands, log=False)

    assert return_value != None, "Функция ничего не возвращает"
    assert type(return_value) == tuple, "Функция должна возвращать кортеж"
    assert len(return_value) == 2 and all(
        type(item) == dict for item in
        return_value), "Функция должна возвращать кортеж с двумя словарями"
    return_good, return_bad = return_value
    assert (len(return_good) == len_good and len(return_bad)
            == len_bad), "Функция возвращает неправильное значение"
def test_function_stdout(error, command, first_router_from_devices_yaml,
                         capsys, monkeypatch):
    # проверяем сообщения об ошибках, при условии,
    # что было выбрано продолжать выполнять вcе команды
    monkeypatch.setattr('builtins.input', lambda x=None: 'y')

    return_value = task_19_2c.send_config_commands(
        first_router_from_devices_yaml, [command], verbose=False)

    # Проверяем вывод информации об ошибках в stdout
    # во входящих данных три команды с ошибками
    # при каждой ошибке, должна выводиться информация:
    # ошибка, IP устройства, команда
    # в тесте проверяется наличие этих полей
    out, err = capsys.readouterr()
    ip = first_router_from_devices_yaml['ip']
    assert error in out, "В сообщении об ошибке нет самой ошибки"
    assert command in out, "В сообщении об ошибке нет выполняемой команды"
    assert ip in out, "В сообщении об ошибке нет IP-адреса устройства"
Example #6
0
def send_commands(device, show=None, config=None):
    if show:
        return send_show_command(device, show)
    else:
        return send_config_commands(device, config)