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 для второй стороны"
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 возвращает неправильное значение"
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),\ "Функция возвращает неправильное значение"
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"
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),\ "В итоговой конфигурации интерфейсов не все строки"