docs: adding tutorial 4
This commit is contained in:
parent
75a92f3a38
commit
c554983436
4 changed files with 181 additions and 0 deletions
24
package/examples/tutorials/tutorial4/tests/conftest.py
Normal file
24
package/examples/tutorials/tutorial4/tests/conftest.py
Normal file
|
@ -0,0 +1,24 @@
|
|||
import pytest
|
||||
from core.emulator.coreemu import CoreEmu
|
||||
from core.emulator.data import IpPrefixes
|
||||
from core.emulator.enumerations import EventTypes
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def global_session():
|
||||
core = CoreEmu()
|
||||
session = core.create_session()
|
||||
yield session
|
||||
core.shutdown()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def session(global_session):
|
||||
global_session.set_state(EventTypes.CONFIGURATION_STATE)
|
||||
yield global_session
|
||||
global_session.clear()
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def ip_prefixes():
|
||||
return IpPrefixes(ip4_prefix="10.0.0.0/24")
|
35
package/examples/tutorials/tutorial4/tests/test_ping.py
Normal file
35
package/examples/tutorials/tutorial4/tests/test_ping.py
Normal file
|
@ -0,0 +1,35 @@
|
|||
import pytest
|
||||
from core.emulator.data import IpPrefixes, LinkOptions
|
||||
from core.emulator.session import Session
|
||||
from core.errors import CoreCommandError
|
||||
from core.nodes.base import CoreNode
|
||||
|
||||
|
||||
class TestPing:
|
||||
def test_success(self, session: Session, ip_prefixes: IpPrefixes):
|
||||
# create nodes
|
||||
node1 = session.add_node(CoreNode)
|
||||
node2 = session.add_node(CoreNode)
|
||||
|
||||
# link nodes together
|
||||
iface1_data = ip_prefixes.create_iface(node1)
|
||||
iface2_data = ip_prefixes.create_iface(node2)
|
||||
session.add_link(node1.id, node2.id, iface1_data, iface2_data)
|
||||
|
||||
# ping node, expect a successful command
|
||||
node1.cmd(f"ping -c 1 {iface2_data.ip4}")
|
||||
|
||||
def test_failure(self, session: Session, ip_prefixes: IpPrefixes):
|
||||
# create nodes
|
||||
node1 = session.add_node(CoreNode)
|
||||
node2 = session.add_node(CoreNode)
|
||||
|
||||
# link nodes together
|
||||
iface1_data = ip_prefixes.create_iface(node1)
|
||||
iface2_data = ip_prefixes.create_iface(node2)
|
||||
options = LinkOptions(loss=100.0)
|
||||
session.add_link(node1.id, node2.id, iface1_data, iface2_data, options)
|
||||
|
||||
# ping node, expect command to fail and raise exception due to 100% loss
|
||||
with pytest.raises(CoreCommandError):
|
||||
node1.cmd(f"ping -c 1 {iface2_data.ip4}")
|
Loading…
Add table
Add a link
Reference in a new issue