def test_sequence_special_methods(): net = task_10_1.IPv4Network('100.7.1.0/29') # test __getitem__ assert net[ 1] == '100.7.1.2', "В сети 100.7.1.0/29 под индексом 1 должен находиться адрес 100.7.1.2" assert net[ -1] == '100.7.1.6', "В сети 100.7.1.0/29 под индексом -1 должен находиться адрес100.7.1.6" assert net[1:4] == ( '100.7.1.2', '100.7.1.3', '100.7.1.4' ), "Срез [1:4] сети 100.7.1.0/29 должен возвращать кортеж с адресами ('100.7.1.2', '100.7.1.3', '100.7.1.4')" # test __len__ assert len(net) == 6, "Для сети 100.7.1.0/29 количество хостов 6" # test __contains__ assert '100.7.1.3' in net, "Должно возвращать True" assert '10.17.1.9' not in net, "Должно возвращать True" # test __iter__ iterator = iter(net) assert next( iterator ) == '100.7.1.1', "Для сети 100.7.1.0/29 первым адресом должен быть 100.7.1.1" # test index assert net.index( '100.7.1.4') == 3, "Для сети 100.7.1.0/29 index 100.7.1.4 равен 3" # test count assert net.count( '100.7.1.4' ) == 1, "Адрес 100.7.1.4 входит в сеть 100.7.1.0/29 поэтому количество должно быть 1" assert net.count( '100.7.1.9' ) == 0, "Адрес 100.7.1.4 не входит в сеть 100.7.1.0/29 поэтому количество должно быть 0"
def test_sequence_special_methods_count(): net = task_10_1.IPv4Network("100.7.1.0/29") assert ( net.count("100.7.1.4") == 1 ), "Адрес 100.7.1.4 входит в сеть 100.7.1.0/29 поэтому количество должно быть 1" assert ( net.count("100.7.1.9") == 0 ), "Адрес 100.7.1.4 не входит в сеть 100.7.1.0/29 поэтому количество должно быть 0"
def test_sequence_special_methods_created(): net = task_10_1.IPv4Network('100.7.1.0/29') check_attr_or_method(net, method='__getitem__') check_attr_or_method(net, method='__len__') check_attr_or_method(net, method='__contains__') check_attr_or_method(net, method='__iter__') check_attr_or_method(net, method='index') check_attr_or_method(net, method='count')
def test_sequence_special_methods_created(): net = task_10_1.IPv4Network("100.7.1.0/29") check_attr_or_method(net, method="__getitem__") check_attr_or_method(net, method="__len__") check_attr_or_method(net, method="__contains__") check_attr_or_method(net, method="__iter__") check_attr_or_method(net, method="index") check_attr_or_method(net, method="count")
def test_sequence_special_methods_getitem(): net = task_10_1.IPv4Network("100.7.1.0/29") assert ( net[1] == "100.7.1.2" ), "В сети 100.7.1.0/29 под индексом 1 должен находиться адрес 100.7.1.2" assert ( net[-1] == "100.7.1.6" ), "В сети 100.7.1.0/29 под индексом -1 должен находиться адрес100.7.1.6" assert net[1:4] == ( "100.7.1.2", "100.7.1.3", "100.7.1.4", ), "Срез [1:4] сети 100.7.1.0/29 должен возвращать кортеж с адресами ('100.7.1.2', '100.7.1.3', '100.7.1.4')"
def test_class(): '''Проверяем работу объекта''' list_of_ips = ['8.8.4.2', '8.8.4.4', '8.8.4.6'] correct_return_value = get_reach_unreach(list_of_ips) net1 = task_10_1.IPv4Network('8.8.4.0/29') net1.allocate('8.8.4.2') net1.allocate('8.8.4.4') net1.allocate('8.8.4.6') scan_net = task_10_2.PingNetwork(net1) assert callable(scan_net) == True return_value = scan_net() assert return_value != None, "Функция ничего не возвращает" assert type(return_value) == tuple and all(type(item)==list for item in return_value), "Метод scan должен возвращать кортеж с двумя списками" assert return_value == correct_return_value, "Функция возвращает неправильное значение" # include_unassigned = True assert type(scan_net(include_unassigned=True)) == tuple
def test_class(): """Проверяем работу объекта""" list_of_ips = ["8.8.4.2", "8.8.4.4", "8.8.4.6"] correct_return_value = get_reach_unreach(list_of_ips) net1 = task_10_1.IPv4Network("8.8.4.0/29") net1.allocate_ip("8.8.4.2") net1.allocate_ip("8.8.4.4") net1.allocate_ip("8.8.4.6") scan_net = task_10_2.PingNetwork(net1) assert callable(scan_net) == True return_value = scan_net() assert return_value != None, "Функция ничего не возвращает" assert type(return_value) == tuple and all( type(item) == list for item in return_value), "Метод scan должен возвращать кортеж с двумя списками" reach, unreach = return_value assert ((sorted(reach), sorted(unreach)) == correct_return_value ), "Функция возвращает неправильное значение" # include_unassigned = True assert type(scan_net(include_unassigned=True)) == tuple
def test_sequence_special_methods_index(): net = task_10_1.IPv4Network("100.7.1.0/29") assert net.index( "100.7.1.4") == 3, "Для сети 100.7.1.0/29 index 100.7.1.4 равен 3"
def test_sequence_special_methods_iter(): net = task_10_1.IPv4Network("100.7.1.0/29") iterator = iter(net) assert (next(iterator) == "100.7.1.1" ), "Для сети 100.7.1.0/29 первым адресом должен быть 100.7.1.1"
def test_sequence_special_methods_contains(): net = task_10_1.IPv4Network("100.7.1.0/29") assert "100.7.1.3" in net, "Должно возвращать True" assert "10.17.1.9" not in net, "Должно возвращать True"
def test_sequence_special_methods_len(): net = task_10_1.IPv4Network("100.7.1.0/29") assert len(net) == 6, "Для сети 100.7.1.0/29 количество хостов 6"