Example #1
0
def test_method__add__(normalized_topology_example):
    """Проверка наличия метода __add__ и его работы"""
    top1 = task_23_3.Topology(normalized_topology_example)
    top1_size_before_add = len(top1.topology)
    top2 = task_23_3.Topology(
        {("R1", "Eth0/4"): ("R7", "Eth0/0"), ("R1", "Eth0/6"): ("R9", "Eth0/0")}
    )
    top2_size_before_add = len(top2.topology)

    check_attr_or_method(top1, method="__add__")
    top3 = top1 + top2
    assert isinstance(
        top3, task_23_3.Topology
    ), "Метод __add__ должен возвращать новый экземпляр класса Topology"
    assert len(top3.topology) == 8
    assert (
        len(top1.topology) == top1_size_before_add
    ), "После сложения изменился размер первой топологии. Метод __add__ не должен менять исходные топологии"
    assert (
        len(top2.topology) == top2_size_before_add
    ), "После сложения изменился размер второй топологии. Метод __add__ не должен менять исходные топологии"
Example #2
0
def test_attributes_created():
    '''
    Проверяем, что у объекта есть атрибуты
    '''
    prefix = task_13_1.Route('192.168.1.0/24', '192.168.20.2', 'OSPF')
    check_attr_or_method(prefix, attr='prefix')
    check_attr_or_method(prefix, attr='nexthop')
    check_attr_or_method(prefix, attr='protocol')
Example #3
0
def test_attributes_created():
    """
    Проверяем, что у объекта есть атрибуты
    """
    prefix = task_13_1.Route("192.168.1.0/24", "192.168.20.2", "OSPF")
    check_attr_or_method(prefix, attr="prefix")
    check_attr_or_method(prefix, attr="nexthop")
    check_attr_or_method(prefix, attr="protocol")
def test_method_delete_node(normalized_topology_example, capsys):
    '''Проверка наличия метода delete_node и его работы'''
    norm_top = task_25_1c.Topology(normalized_topology_example)
    check_attr_or_method(norm_top, method='delete_node')

    node = 'SW1'
    delete_node_result = norm_top.delete_node(node)
    assert delete_node_result == None, 'Метод delete_node не должен ничего возвращать'

    ports_with_node = [
        src for src, dst in norm_top.topology.items()
        if node in src or node in dst
    ]
    assert len(ports_with_node) == 0
    assert len(norm_top.topology) == 3

    #проверка удаления несуществующего устройства
    norm_top.delete_node(node)
    out, err = capsys.readouterr()
    node_msg = 'Такого устройства нет'
    if not node_msg in out:
        warnings.warn(
            UserWarning(stdout_incorrect_warning.format(node_msg, out)))
Example #5
0
def test_special_methods_created():
    class IntTest(task_12_4.OrderingMixin):
        def __init__(self, number):
            self._number = number

        def __eq__(self, other):
            return self._number == other._number

        def __lt__(self, other):
            return self._number < other._number

    int1 = IntTest(5)
    check_attr_or_method(int1, method='__ge__')
    check_attr_or_method(int1, method='__ne__')
    check_attr_or_method(int1, method='__le__')
    check_attr_or_method(int1, method='__gt__')
Example #6
0
def test_new_attr_created():
    '''
    Проверяем, что у объекта есть переменные:
        allocate, unassigned
    '''
    net = task_11_1.IPv4Network('100.7.1.0/26')
    check_attr_or_method(net, method='allocate')
    check_attr_or_method(net, attr='unassigned')
    check_attr_or_method(net, attr='hosts')
def test_new_attr_created():
    """
    Проверяем, что у объекта есть переменные:
        allocate, unassigned
    """
    net = task_11_1.IPv4Network("100.7.1.0/26")
    check_attr_or_method(net, method="allocate")
    check_attr_or_method(net, attr="unassigned")
    check_attr_or_method(net, attr="hosts")
Example #8
0
def test_method_add_link(normalized_topology_example, capsys):
    '''Проверка наличия метода add_link и его работы'''
    norm_top = Topology(normalized_topology_example)
    check_attr_or_method(norm_top, method='add_link')

    add_link_result = norm_top.add_link(('R1', 'Eth0/4'), ('R7', 'Eth0/0'))
    assert add_link_result == None, 'Метод add_link не должен ничего возвращать'

    assert ('R1', 'Eth0/4') in norm_top.topology
    assert len(norm_top.topology) == 7

    #проверка добавления существующего линка
    norm_top.add_link(('R1', 'Eth0/4'), ('R7', 'Eth0/0'))
    out, err = capsys.readouterr()
    link_msg = 'Такое соединение существует\n'
    if not out == link_msg:
        warnings.warn(UserWarning(stdout_incorrect_warning.format(link_msg, out)))

    #проверка добавления линка с существующим портом
    norm_top.add_link(('R1', 'Eth0/4'), ('R7', 'Eth0/5'))
    out, err = capsys.readouterr()
    port_msg = 'Cоединение с одним из портов существует\n'
    if not out == port_msg:
        warnings.warn(UserWarning(stdout_incorrect_warning.format(port_msg, out)))
Example #9
0
def test_methods():
    net1 = task_14_2.Network('10.1.1.192/30')
    check_attr_or_method(net1, method="__iter__")
    check_attr_or_method(net1, method="__len__")
    check_attr_or_method(net1, method="__getitem__")
    assert isinstance(
        net1.__iter__(),
        collections.abc.Iterable), "метод должен возвращать итератор"
    for ip in net1.__iter__():
        try:
            ip1 = ipaddress.ip_address(ip)
        except ValueError:
            raise ValueError('Итератор возвращает не IP адрес')
    assert net1.__len__(
    ) == 2, "метод возвращает неправильное количество адресов"
    assert net1.__getitem__(
        1) == '10.1.1.194', "метод возвращает неправильное значение"
    assert net1.__getitem__(
        -1) == '10.1.1.194', "метод возвращает неправильное значение"
    with pytest.raises(IndexError) as excinfo:
        ip1 = net1.__getitem__(2)
Example #10
0
def test_method_normalize(topology_with_dupl_links):
    """Проверяем, что в объекте Topology есть метод _normalize"""
    top_with_data = task_25_1a.Topology(topology_with_dupl_links)
    check_attr_or_method(top_with_data, method="_normalize")
Example #11
0
def test_method_add_link_created(normalized_topology_example):
    """Проверяем, что в объекте Topology есть метод add_link"""
    norm_top = task_25_1d.Topology(normalized_topology_example)
    check_attr_or_method(norm_top, method="add_link")
Example #12
0
def test_class_inheritance(first_router_from_devices_yaml):
    r1 = task_27_1a.CiscoSSH(**first_router_from_devices_yaml)
    assert isinstance(r1, BaseSSH), "Класс CiscoSSH должен наследовать BaseSSH"
    check_attr_or_method(r1, method="send_show_command")
    check_attr_or_method(r1, method="send_cfg_commands")
def test_class_attrs():
    net1 = IPv4Network("10.1.1.0/24")
    check_attr_or_method(net1, attr="address")
    check_attr_or_method(net1, attr="mask")
    check_attr_or_method(net1, attr="allocated")
Example #14
0
def test_method_delete_link_created(topology_with_dupl_links,
                                    normalized_topology_example):
    """Проверяем, что в объекте Topology есть метод delete_link"""
    norm_top = task_25_1b.Topology(normalized_topology_example)
    check_attr_or_method(norm_top, method="delete_link")
Example #15
0
def test_attr_total_calls_created():
    @task_7_5a.count_calls
    def do_thing(a, b):
        return a + b

    check_attr_or_method(do_thing, attr='total_calls')
def test_method_normalize(topology_with_dupl_links):
    '''Проверяем, что в объекте Topology есть метод _normalize'''
    top_with_data = Topology(topology_with_dupl_links)
    check_attr_or_method(top_with_data, method='_normalize')
Example #17
0
def test_sequence_special_methods_created():
    net = task_12_2.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():
    ip = task_4_4.IPAddress('10.2.1.1')
    check_attr_or_method(ip, method='__ge__')
    check_attr_or_method(ip, method='__ne__')
    check_attr_or_method(ip, method='__le__')
    check_attr_or_method(ip, method='__gt__')
Example #19
0
def test_class_inheritance(first_router_from_devices_yaml):
    r1 = task_27_2c.MyNetmiko(**first_router_from_devices_yaml)
    assert isinstance(r1, CiscoIosBase), "Класс MyNetmiko должен наследовать CiscoIosBase"
    check_attr_or_method(r1, attr='send_command')
    r1.send_command('sh ip int br', strip_command=False)
    r1.disconnect()
def test_class_attrs():
    net1 = IPv4Network('10.1.1.0/24')
    check_attr_or_method(net1, attr='address')
    check_attr_or_method(net1, attr='mask')
    check_attr_or_method(net1, attr='allocated')
def test_class_method():
    net1 = IPv4Network('10.1.1.0/24')
    check_attr_or_method(net1, method='hosts')
    check_attr_or_method(net1, method='allocate')
    check_attr_or_method(net1, method='unassigned')
Example #22
0
def test_class_inheritance(first_router_from_devices_yaml):
    r1 = task_27_2c.MyNetmiko(**first_router_from_devices_yaml)
    r1.disconnect()
    assert isinstance(
        r1, CiscoIosSSH), "Класс MyNetmiko должен наследовать CiscoIosSSH"
    check_attr_or_method(r1, method="send_command")
Example #23
0
def test_attr_put():
    things = task_7_3.queue()
    check_attr_or_method(things, attr='put')
def test_class_method():
    net1 = IPv4Network("10.1.1.0/24")
    check_attr_or_method(net1, method="hosts")
    check_attr_or_method(net1, method="allocate")
    check_attr_or_method(net1, method="unassigned")
Example #25
0
def test_attr_topology(topology_with_dupl_links):
    """Проверяем, что в объекте Topology есть атрибут topology"""
    top_with_data = task_25_1b.Topology(topology_with_dupl_links)
    check_attr_or_method(top_with_data, attr="topology")
Example #26
0
def test_attr_buy():
    things = task_7_2a.count_total()
    check_attr_or_method(things, attr='buy')
Example #27
0
def test_attributes_created():
    """
    Проверяем, что у класса есть метод from_tuple:
    """
    check_attr_or_method(task_11_1a.IPv4Network, method="from_tuple")
Example #28
0
def test_attributes_created():
    '''
    Проверяем, что у класса есть метод from_tuple:
    '''
    check_attr_or_method(task_3_1a.IPv4Network, method='from_tuple')
Example #29
0
def test_attr_topology(topology_with_dupl_links):
    '''Проверяем, что в объекте Topology есть атрибут topology'''
    top_with_data = task_4_3a.Topology(topology_with_dupl_links)
    check_attr_or_method(top_with_data, attr='topology')
def test_sequence_special_methods_created():
    net = task_12_2.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")