예제 #1
0
def test_function_return_value():
    data = {
        'tun_num': 17,
        'wan_ip_1': '80.241.1.1',
        'wan_ip_2': '90.18.10.2',
        'tun_ip_1': '10.255.1.1 255.255.255.252',
        'tun_ip_2': '10.255.1.2 255.255.255.252'
    }
    correct_value_1 = ('interface Tunnel 17\n'
                       'ip address 10.255.1.1 255.255.255.252\n'
                       'tunnel source 80.241.1.1\n'
                       'tunnel destination 90.18.10.2\n'
                       'tunnel protection ipsec profile GRE')
    correct_value_2 = ('interface Tunnel 17\n'
                       'ip address 10.255.1.2 255.255.255.252\n'
                       'tunnel source 90.18.10.2\n'
                       'tunnel destination 80.241.1.1\n'
                       'tunnel protection ipsec profile GRE')

    template1 = 'templates/gre_ipsec_vpn_1.txt'
    template2 = 'templates/gre_ipsec_vpn_2.txt'

    return_cfg1, return_cfg2 = task_21_5.create_vpn_config(
        template1, template2, data)
    return_cfg1 = strip_empty_lines(return_cfg1)
    return_cfg2 = strip_empty_lines(return_cfg2)

    assert correct_value_1 in return_cfg1,\
            "В итоговой конфигурации неправильно указаны настройки Tunnel для первой стороны"
    assert correct_value_2 in return_cfg2,\
            "В итоговой конфигурации неправильно указаны настройки Tunnel для второй стороны"
예제 #2
0
def test_class(first_router_from_devices_yaml, r1_test_telnet_connection):
    r1 = CiscoTelnet(**first_router_from_devices_yaml)
    assert getattr(r1, '_write_line', None) != None,\
            'У класса CiscoTelnet должен быть метод _write_line'
    assert getattr(r1, 'send_show_command', None) != None,\
            'У класса CiscoTelnet должен быть метод send_show_command'

    correct_return_value = strip_empty_lines(
        r1_test_telnet_connection.send_command('sh ip int br'))
    return_value = strip_empty_lines(r1.send_show_command('sh ip int br'))
    assert correct_return_value in return_value, "Метод send_show_command возвращает неправильное значение"
예제 #3
0
def test_function_return_value():
    correct_return_value = ('\n'
                            'hostname R3\n'
                            '\n'
                            'interface Loopback0\n'
                            ' ip address 10.0.0.3 255.255.255.255\n'
                            '\n'
                            'vlan 10\n'
                            ' name Marketing\n'
                            'vlan 20\n'
                            ' name Voice\n'
                            'vlan 30\n'
                            ' name Management\n'
                            '\n'
                            'router ospf 1\n'
                            ' router-id 10.0.0.3\n'
                            ' auto-cost reference-bandwidth 10000\n'
                            ' network 10.0.1.0 0.0.0.255 area 0\n'
                            ' network 10.0.2.0 0.0.0.255 area 2\n'
                            ' network 10.1.1.0 0.0.0.255 area 0\n')

    template = 'templates/for.txt'
    data = {
        'id':
        3,
        'name':
        'R3',
        'vlans': {
            10: 'Marketing',
            20: 'Voice',
            30: 'Management'
        },
        'ospf': [{
            'network': '10.0.1.0 0.0.0.255',
            'area': 0
        }, {
            'network': '10.0.2.0 0.0.0.255',
            'area': 2
        }, {
            'network': '10.1.1.0 0.0.0.255',
            'area': 0
        }]
    }
    return_value = task_21_1.generate_config(template, data)
    assert return_value != None, "Функция ничего не возвращает"
    assert type(return_value) == str, "Функция должна возвращать строку"
    assert strip_empty_lines(return_value) == strip_empty_lines(correct_return_value),\
            "Функция возвращает неправильное значение"
예제 #4
0
def test_function_return_value():
    correct_value_vlan = ('vlan 10\n' 'name Marketing')
    correct_value_access = ('interface Fa0/1\n'
                            'switchport mode access\n'
                            'switchport access vlan 10')
    correct_value_trunk = ('interface Fa0/23\n'
                           'switchport trunk allowed vlan add 10\n'
                           'interface Fa0/24\n'
                           'switchport trunk allowed vlan add 10')

    template = 'templates/add_vlan_to_switch.txt'
    data = {
        'vlan_id': 10,
        'name': 'Marketing',
        'trunk': ['Fa0/23', 'Fa0/24'],
        'access': ['Fa0/1']
    }

    return_value = task_21_1.generate_config(template, data)
    return_value = strip_empty_lines(return_value)

    assert correct_value_vlan in return_value,\
            "В итоговой конфигурации не создан VLAN и/или не назначено имя VLAN"
    assert correct_value_access in return_value,\
            "В итоговой конфигурации неправильная настройка access"
    assert correct_value_trunk in return_value,\
            "В итоговой конфигурации неправильная настройка trunk"
예제 #5
0
def test_function_return_value():
    correct_return_value_router = (
        'router ospf 10\n'
        'router-id 10.0.0.1\n'
        'auto-cost reference-bandwidth 20000\n'
        'network 10.255.0.1 0.0.0.0 area 0\n'
        'network 10.255.1.1 0.0.0.0 area 0\n'
        'network 10.255.2.1 0.0.0.0 area 0\n'
        'network 10.0.10.1 0.0.0.0 area 2\n'
        'network 10.0.20.1 0.0.0.0 area 2\n'
        'passive-interface Fa0/0.10\n'
        'passive-interface Fa0/0.20\n'
    )
    correct_return_value_intf = (
        'interface Fa0/1\n'
        'ip ospf hello-interval 1\n'
        'interface Fa0/1.100\n'
        'ip ospf hello-interval 1\n'
        'interface Fa0/1.200\n'
        'ip ospf hello-interval 1\n'
    )

    template = 'templates/ospf.txt'
    data = {
        'ospf_intf': [
            {'area': 0, 'ip': '10.255.0.1', 'name': 'Fa0/1', 'passive': False},
            {'area': 0, 'ip': '10.255.1.1', 'name': 'Fa0/1.100', 'passive': False},
            {'area': 0, 'ip': '10.255.2.1', 'name': 'Fa0/1.200', 'passive': False},
            {'area': 2, 'ip': '10.0.10.1', 'name': 'Fa0/0.10', 'passive': True},
            {'area': 2, 'ip': '10.0.20.1', 'name': 'Fa0/0.20', 'passive': True}],
        'process': 10,
        'ref_bw': 20000,
        'router_id': '10.0.0.1'
    }

    return_value = task_21_1.generate_config(template, data)
    correct_lines_router = set(correct_return_value_router.splitlines())
    correct_lines_interface = set(correct_return_value_intf.splitlines())

    return_value = strip_empty_lines(return_value)
    return_lines = set(return_value.splitlines())

    # проверяем что строки из correct_return_value_router содержатся в return_value
    assert correct_lines_router.issubset(return_lines),\
            "В итоговой конфигурации режима router ospf не все строки"
    # проверяем что строки из correct_return_value_intf содержатся в return_value
    assert correct_lines_interface.issubset(return_lines),\
            "В итоговой конфигурации интерфейсов не все строки"