def test_return_types(attr_name, attr_type): """Проверяем типы""" net = task_9_1.IPv4Network("100.7.1.0/26") attr_value = getattr(net, attr_name) assert type(attr_value) == attr_type, ( f"По заданию в атрибуте {attr_name} должно быть значение типа {attr_type}," f" а в нем {type(attr_value).__name__}")
def test_methods_created(): """ Проверяем, что у объекта есть нужные методы """ net = task_9_1.IPv4Network("100.7.1.0/26") check_attr_or_method(net, method="allocate_ip") check_attr_or_method(net, method="free_ip")
def test_methods_created(): """ Проверяем, что у объекта есть методы: _ping, scan """ scan_net = task_9_2.PingNetwork(task_9_1.IPv4Network("8.8.4.0/29")) check_attr_or_method(scan_net, method="_ping") check_attr_or_method(scan_net, method="scan")
def test_methods_created(): ''' Проверяем, что у объекта есть методы: _ping, scan ''' scan_net = task_9_2.PingNetwork(task_9_1.IPv4Network('8.8.4.0/29')) check_attr_or_method(scan_net, method='_ping') check_attr_or_method(scan_net, method='scan')
def test_methods_created(): ''' Проверяем, что у объекта есть методы: allocate, unassigned ''' net = task_9_1.IPv4Network('100.7.1.0/26') check_attr_or_method(net, method='allocate') check_attr_or_method(net, method='unassigned')
def test_methods_created(): """ Проверяем, что у объекта есть методы: allocate, unassigned """ net = task_9_1.IPv4Network("100.7.1.0/26") check_attr_or_method(net, method="allocate") check_attr_or_method(net, method="unassigned")
def test_attr_values(): """Проверяем работу объекта""" net = task_9_1.IPv4Network("100.7.1.0/26", gw="100.7.1.1") assert len(net.hosts) == 62, "В данной сети должно быть 62 хоста" assert net.broadcast == "100.7.1.63", "Broadcast адрес для этой сети 100.7.1.63" assert len(net.allocated ) == 1, "Переменная allocated должна содержать 1 хост - gw" assert ( len(net.unassigned) == 61 ), "Переменная unassigned должна возвращать на 1 хост меньше, чем hosts"
def test_attributes_created(): """ Проверяем, что у объекта есть нужные атрибуты """ net = task_9_1.IPv4Network("100.7.1.0/26", gw="100.7.1.1") check_attr_or_method(net, attr="network") check_attr_or_method(net, attr="gw") check_attr_or_method(net, attr="broadcast") check_attr_or_method(net, attr="allocated") check_attr_or_method(net, attr="unassigned") check_attr_or_method(net, attr="hosts")
def test_attributes_created(): ''' Проверяем, что у объекта есть атрибуты: address, mask, broadcast, allocated ''' net = task_9_1.IPv4Network('100.7.1.0/26') check_attr_or_method(net, attr='address') check_attr_or_method(net, attr='mask') check_attr_or_method(net, attr='broadcast') check_attr_or_method(net, attr='allocated') assert net.allocated == tuple( ), "По умолчанию allocated должен содержать пустой кортеж"
def test_attributes_created(): """ Проверяем, что у объекта есть атрибуты: address, mask, broadcast, allocated """ net = task_9_1.IPv4Network("100.7.1.0/26") check_attr_or_method(net, attr="address") check_attr_or_method(net, attr="mask") check_attr_or_method(net, attr="broadcast") check_attr_or_method(net, attr="allocated") assert (net.allocated == tuple() ), "По умолчанию allocated должен содержать пустой кортеж"
def test_exceptions(): """Проверяем работу объекта""" net = task_9_1.IPv4Network("100.7.1.0/26", gw="100.7.1.1") net.allocate_ip("100.7.1.45") with pytest.raises(ValueError): # allocate_ip тот же адрес второй раз net.allocate_ip("100.7.1.45") with pytest.raises(ValueError): # адрес не из сети 100.7.1.0/26 net.allocate_ip("100.7.1.253") net.free_ip("100.7.1.45") with pytest.raises(ValueError): # free_ip тот же адрес второй раз net.free_ip("100.7.1.45")
def test_address_allocation(): '''Проверяем работу объекта''' net = task_9_1.IPv4Network('100.7.1.0/26') assert len(net.hosts()) == 62, "В данной сети должно быть 62 хоста" assert net.broadcast == '100.7.1.63', "Broadcast адрес для этой сети 100.7.1.63" net.allocate('100.7.1.45') net.allocate('100.7.1.15') net.allocate('100.7.1.60') assert len(net.hosts()) == 62, "Метод hosts должен возвращать все хосты" assert len( net.allocated) == 3, "Переменная allocated должна содержать 3 хоста" assert len(net.unassigned() ) == 59, "Метод unassigned должен возвращать на 3 хоста меньше"
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_9_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_9_2.PingNetwork(net1) assert scan_net._ping('8.8.4.4') in ( True, False), "Метод _ping должен возвращать True или False" return_value = scan_net.scan() 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, "Функция возвращает неправильное значение"
def test_address_allocation(): """Проверяем работу объекта""" net = task_9_1.IPv4Network("100.7.1.0/26", gw="100.7.1.1") net.allocate_ip("100.7.1.45") net.allocate_ip("100.7.1.15") net.allocate_ip("100.7.1.60") assert len(net.hosts) == 62, "Метод hosts должен возвращать все хосты" assert len( net.allocated) == 4, "Переменная allocated должна содержать 4 хоста" assert ( len(net.unassigned) == 58 ), "Переменная unassigned должна возвращать на 4 хоста меньше, чем hosts" net.free_ip("100.7.1.45") net.free_ip("100.7.1.60") assert len( net.allocated) == 2, "Переменная allocated должна содержать 2 хоста" assert ( len(net.unassigned) == 60 ), "Переменная unassigned должна возвращать на 2 хоста меньше, чем hosts"
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_9_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_9_2.PingNetwork(net1) assert scan_net._ping("8.8.4.4") in ( True, False, ), "Метод _ping должен возвращать True или False" return_value = scan_net.scan() 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 ), "Функция возвращает неправильное значение"
def test_return_types(): '''Проверяем работу объекта''' net = task_9_1.IPv4Network('100.7.1.0/26') assert type(net.hosts()) == tuple, "Метод hosts должен возвращать кортеж" assert type( net.unassigned()) == tuple, "Метод unassigned должен возвращать кортеж"