core-extra/daemon/tests/test_nodes.py

107 lines
2.6 KiB
Python

import pytest
from core.emulator.emudata import NodeOptions
from core.emulator.enumerations import NodeTypes
from core.errors import CoreError
MODELS = ["router", "host", "PC", "mdr"]
NET_TYPES = [NodeTypes.SWITCH, NodeTypes.HUB, NodeTypes.WIRELESS_LAN]
class TestNodes:
@pytest.mark.parametrize("model", MODELS)
def test_node_add(self, session, model):
# given
options = NodeOptions(model=model)
# when
node = session.add_node(options=options)
# then
assert node
assert node.alive()
assert node.up
def test_node_update(self, session):
# given
node = session.add_node()
position_value = 100
update_options = NodeOptions()
update_options.set_position(x=position_value, y=position_value)
# when
session.edit_node(node.id, update_options)
# then
assert node.position.x == position_value
assert node.position.y == position_value
def test_node_delete(self, session):
# given
node = session.add_node()
# when
session.delete_node(node.id)
# then
with pytest.raises(CoreError):
session.get_node(node.id)
def test_node_sethwaddr(self, session):
# given
node = session.add_node()
index = node.newnetif()
interface = node.netif(index)
mac = "aa:aa:aa:ff:ff:ff"
# when
node.sethwaddr(index, mac)
# then
assert interface.hwaddr == mac
def test_node_sethwaddr_exception(self, session):
# given
node = session.add_node()
index = node.newnetif()
node.netif(index)
mac = "aa:aa:aa:ff:ff:fff"
# when
with pytest.raises(CoreError):
node.sethwaddr(index, mac)
def test_node_addaddr(self, session):
# given
node = session.add_node()
index = node.newnetif()
interface = node.netif(index)
addr = "192.168.0.1/24"
# when
node.addaddr(index, addr)
# then
assert interface.addrlist[0] == addr
def test_node_addaddr_exception(self, session):
# given
node = session.add_node()
index = node.newnetif()
node.netif(index)
addr = "256.168.0.1/24"
# when
with pytest.raises(CoreError):
node.addaddr(index, addr)
@pytest.mark.parametrize("net_type", NET_TYPES)
def test_net(self, session, net_type):
# given
# when
node = session.add_node(_type=net_type)
# then
assert node
assert node.up