def test_function_return_value(list_of_ips): correct_return_value = get_reach_unreach(list_of_ips) return_value = task_12_1.ping_ip_addresses(list_of_ips) assert return_value != None, "Функция ничего не возвращает" assert type(return_value) == tuple and all( type(item) == list for item in return_value), "Функция должна возвращать кортеж с двумя списками" assert return_value == correct_return_value, "Функция возвращает неправильное значение"
def test_function_return_value(): """ Проверка работы функции """ list_of_ips = ["1.1.1.1", "8.8.8.8", "8.8.4.4", "8.8.7.1"] correct_return_value = get_reach_unreach(list_of_ips) return_value = task_12_1.ping_ip_addresses(list_of_ips) assert return_value != None, "Функция ничего не возвращает" assert type(return_value) == tuple and all( type(item) == list for item in return_value), "Функция должна возвращать кортеж с двумя списками" assert (correct_return_value == return_value ), "Функция возвращает неправильное значение"
def test_function_return_value(): """ Function check """ list_of_ips = ["1.1.1", "8.8.8.8", "8.8.4.4", "8.8.7.1"] correct_return_value = get_reach_unreach(list_of_ips) return_value = task_12_1.ping_ip_addresses(list_of_ips) assert return_value != None, "The function returns None" assert type(return_value) == tuple and all( type(item) == list for item in return_value ), "The function must return a tuple with two lists" assert ( return_value == correct_return_value ), "Function returns wrong value"
def convert_ranges_to_ip_list(*args): a = [] itogovyi_spisok = [] for i in _list: if "-" in i: b = i.split("-") a.append(b) else: a.append(i) for c in a: if type(c) == list: d = c[0].split(".") j = c[1].split(".") for num in range(int(d[-1]), int(j[-1]) + 1): d[-1] = d[-1].replace(d[-1], str(num)) itogovyi_spisok.append(".".join(d)) else: itogovyi_spisok.append(c) print(itogovyi_spisok) return ping_ip_addresses(itogovyi_spisok)
Результат работы функции - вывод на стандартный поток вывода таблицы вида: Reachable Unreachable ----------- ------------- 10.1.1.1 10.1.1.7 10.1.1.2 10.1.1.8 10.1.1.9 """ from task_12_1 import ping_ip_addresses from tabulate import tabulate def print_ip_table(reachable_ips, unreachable_ips): ip_dict = {} ip_dict['Reachable'] = reachable_ips ip_dict['Unreachable'] = unreachable_ips print(tabulate(ip_dict, headers='keys', tablefmt="markdown")) if __name__ == "__main__": ip_list = ['8.8.8.8', '80.255.128.1', 'a', '10.1.1.1'] #print(ping_ip_addresses(ip_list)) print_ip_table(*ping_ip_addresses(ip_list)) """ Натальино решение как обычно более короткое def print_ip_table(reach_ip, unreach_ip): table = {"Reachable": reach_ip, "Unreahable": unreach_ip} print(tabulate(table, headers = keys)) """
def print_ip_table(address): table = { 'Reachable': ping_ip_addresses(address)[0], 'Unreachable': ping_ip_addresses(address)[1] } print(tabulate(table, headers='keys'))
* список доступных IP-адресов * список недоступных IP-адресов Результат работы функции - вывод на стандартный поток вывода таблицы вида: Reachable Unreachable ----------- ------------- 10.1.1.1 10.1.1.7 10.1.1.2 10.1.1.8 10.1.1.9 """ from task_12_1 import ping_ip_addresses from tabulate import tabulate ip_list = ['8.8.8.8', '8.8.4.4', '192.168.1.1'] col = ['Reachable', 'Unreachable'] #u_l = [10.1.1.7, 10.1.1.8, 10.1.1.9] #r_l = [10.1.1.1,10.1.1.2] def print_ip_table(r_l, u_l): dict1 = {} dict1['Reachable'] = r_l dict1['Unreachable'] = u_l print(tabulate(dict1, headers='keys')) r_l, u_l = ping_ip_addresses(ip_list) #print(dict0) print_ip_table(r_l, u_l)
* список недоступных IP-адресов Результат работы функции - вывод на стандартный поток вывода таблицы вида: Reachable Unreachable ----------- ------------- 10.1.1.1 10.1.1.7 10.1.1.2 10.1.1.8 10.1.1.9 """ from tabulate import tabulate from task_12_1 import ping_ip_addresses from task_12_2 import convert_ranges_to_ip_list def print_ip_table(reach, unreach): table = {"Reachable": reach, "Unreachable": unreach} tabulated_table = tabulate(table, headers='keys') print(table) return tabulated_table if __name__ == "__main__": input_str = input('Введите адреса(,): ') input_list = [i.strip() for i in input_str.split(',')] list_of_ips = (convert_ranges_to_ip_list(input_list)) reach, unreach = ping_ip_addresses(list_of_ips) print(print_ip_table(reach, unreach))
----------- ------------- 10.1.1.1 10.1.1.7 10.1.1.2 10.1.1.8 10.1.1.9 Функция не должна изменять списки, которые переданы ей как аргументы. То есть, до выполнения функции и после списки должны выглядеть одинаково. Для этого задания нет тестов ''' import task_12_1 from tabulate import tabulate def print_ip_table(reachable, unreachable): ''' Функция ожидает как аргументы два списка: * список доступных IP-адресов * список недоступных IP-адресов ''' columns = ['Reachable', 'Unreachable'] values = (reachable, unreachable) return tabulate(values, headers=columns) if __name__ == '__main__': ip_list = ['8.8.8.8', '4.4.4.4', '1.1.1.1', '123.324.41.12', '123.2.3.3'] c = task_12_1.ping_ip_addresses(ip_list) print(print_ip_table(c[0], c[1]))
Функция ожидает как аргументы два списка: * список доступных IP-адресов * список недоступных IP-адресов Результат работы функции - вывод на стандартный поток вывода таблицы вида: Reachable Unreachable ----------- ------------- 10.1.1.1 10.1.1.7 10.1.1.2 10.1.1.8 10.1.1.9 Функция не должна изменять списки, которые переданы ей как аргументы. То есть, до выполнения функции и после списки должны выглядеть одинаково. Для этого задания нет тестов ''' from task_12_1 import ping_ip_addresses from task_12_2 import convert_ranges_to_ip_list from tabulate import tabulate #не запускать при импорте if __name__ == "__main__": diapazon_list = [] while True: ip_or_diapazon = input(': ') if ip_or_diapazon == ' ': break diapazon_list.append(ip_or_diapazon) tup = ping_ip_addresses(convert_ranges_to_ip_list(diapazon_list)) print(tabulate(list(zip(tup[0], tup[1])), headers=['Reachable', 'Unreachable'], tablefmt='grid'))
Функция ожидает как аргументы два списка: * список доступных IP-адресов * список недоступных IP-адресов Результат работы функции - вывод на стандартный поток вывода таблицы вида: Reachable Unreachable ----------- ------------- 10.1.1.1 10.1.1.7 10.1.1.2 10.1.1.8 10.1.1.9 Функция не должна изменять списки, которые переданы ей как аргументы. То есть, до выполнения функции и после списки должны выглядеть одинаково. Для этого задания нет тестов ''' from tabulate import tabulate from task_12_1 import ping_ip_addresses def print_ip_table(reach_list, unreach_list): header=['Reachable', 'Unreachable'] result={key:value for key,value in zip(header,(reach_list,unreach_list))} print(tabulate(result, headers='keys')) if __name__=="__main__": ping_check=['10.198.20.137','8.8.8.8', '1.1.1.1', '10.198.20.153','8.8.4.4' ] reach,unreach = (ping_ip_addresses(ping_check)) print_ip_table(reach,unreach)
#!/usr/bin/env python3 from task_12_1 import ping_ip_addresses ip_in = [ '192.168.50.0-2', '1.1.1.1-1.1.1.2', '8.8.8.8', ] def convert_ranges_to_ip_list(ip_addr_list): sorted_list = [] for ip in ip_addr_list: range_ip = ip.split('-') if ('-') not in ip: sorted_list.append(ip) elif len(range_ip[1].split('.')) == 1: for num in range(int(range_ip[0].split('.')[3]), int(range_ip[1]) + 1): ip = '.'.join(range_ip[0].split('.')[0:3]) + str(f'.{num}') sorted_list.append(ip) else: for num in range(int((range_ip[0].split('.')[3])), int(range_ip[1].split('.')[3]) + 1): ip = '.'.join(range_ip[0].split('.')[0:3]) + str(f'.{num}') sorted_list.append(ip) return sorted_list if __name__ == "__main__": print(ping_ip_addresses(convert_ranges_to_ip_list(ip_in)))