コード例 #1
0
def test_return_types(attr_name, attr_type):
    """Проверяем типы"""
    net = task_13_4.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__}")
コード例 #2
0
def test_returned_types():
    """Проверяем работу объекта"""
    net = task_13_4.IPv4Network("100.7.1.0/26")
    assert net.allocated == [], "По умолчанию allocated должен содержать пустой список"
    assert isinstance(net.unassigned,
                      list), "unassigned должен содержать список IP-адресов"
    assert type(net.hosts) == list, "Метод hosts должен возвращать список"
コード例 #3
0
def test_method_created():
    """
    Проверяем, что у объекта есть метод:
        allocate
    """
    net = task_13_4.IPv4Network("100.7.1.0/26")
    check_attr_or_method(net, method="allocate")
コード例 #4
0
def test_attributes_created():
    """
    Проверяем, что у объекта есть атрибуты:
        address, mask, broadcast, allocated, unassigned
    """
    net = task_13_4.IPv4Network("100.7.1.0/26")
    check_attr_or_method(net, attr="network")
    check_attr_or_method(net, attr="broadcast")
    check_attr_or_method(net, attr="allocated")
    check_attr_or_method(net, attr="unassigned")
コード例 #5
0
def test_exceptions():
    """Проверяем работу объекта"""
    net = task_13_4.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")
コード例 #6
0
def test_address_allocation():
    """Проверяем работу объекта"""
    net = task_13_4.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_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) == 3, "Переменная allocated должна содержать 3 хоста"
    assert (len(net.unassigned) == 59
            ), "Метод unassigned должен возвращать на 3 хоста меньше"
コード例 #7
0
def test_address_allocation_with_gw():
    """Проверяем работу объекта"""
    net = task_13_4.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"