Fix test suite

+ Install VPCS and dynamips from GNS3 PPA
 + Drop netifaces-py3 from requirements.txt
 + Fix/update tests to use installed VPCS and dynamips
This commit is contained in:
Daniel Lintott 2014-08-08 14:32:32 +01:00
parent 578bb5741d
commit 7cbce0f81b
9 changed files with 32 additions and 23 deletions

View File

@ -4,9 +4,14 @@ python:
- "3.3"
- "3.4"
before_install:
- "sudo add-apt-repository ppa:gns3/ppa -y"
- "sudo apt-get update -q"
install:
- "pip install -r requirements.txt --use-mirrors"
- "pip install tox"
- "sudo apt-get install vpcs dynamips"
script: "python setup.py test"

View File

@ -1,5 +1,4 @@
netifaces
tornado
pyzmq
netifaces-py3
jsonschema

View File

@ -6,10 +6,9 @@ import os
@pytest.fixture(scope="module")
def hypervisor(request):
cwd = os.path.dirname(os.path.abspath(__file__))
dynamips_path = os.path.join(cwd, "dynamips.stable")
dynamips_path = '/usr/bin/dynamips'
print("\nStarting Dynamips Hypervisor: {}".format(dynamips_path))
manager = HypervisorManager(dynamips_path, "/tmp", "127.0.0.1", 9000)
manager = HypervisorManager(dynamips_path, "/tmp", "127.0.0.1")
hypervisor = manager.start_new_hypervisor()
def stop():

View File

@ -29,9 +29,9 @@ def test_router_exists(router_c7200):
def test_npe(router_c7200):
assert router_c7200.npe == "npe-400" # default value
router_c7200.npe = "npe-200"
assert router_c7200.npe == "npe-200"
assert router_c7200.npe == "npe-200" # default value
router_c7200.npe = "npe-400"
assert router_c7200.npe == "npe-400"
def test_midplane(router_c7200):

View File

@ -10,7 +10,7 @@ def test_is_started(hypervisor):
def test_port(hypervisor):
assert hypervisor.port == 9000
assert hypervisor.port == 7200
def test_host(hypervisor):
@ -25,8 +25,7 @@ def test_working_dir(hypervisor):
def test_path(hypervisor):
cwd = os.path.dirname(os.path.abspath(__file__))
dynamips_path = os.path.join(cwd, "dynamips.stable")
dynamips_path = '/usr/bin/dynamips'
assert hypervisor.path == dynamips_path

View File

@ -7,10 +7,9 @@ import os
@pytest.fixture(scope="module")
def hypervisor_manager(request):
cwd = os.path.dirname(os.path.abspath(__file__))
dynamips_path = os.path.join(cwd, "dynamips.stable")
dynamips_path = '/usr/bin/dynamips'
print("\nStarting Dynamips Hypervisor: {}".format(dynamips_path))
manager = HypervisorManager(dynamips_path, "/tmp", "127.0.0.1", 9000)
manager = HypervisorManager(dynamips_path, "/tmp", "127.0.0.1")
#manager.start_new_hypervisor()

View File

@ -9,7 +9,7 @@ import base64
@pytest.fixture
def router(request, hypervisor):
router = Router(hypervisor, "router", "c3725")
router = Router(hypervisor, "router", platform="c3725")
request.addfinalizer(router.delete)
return router
@ -127,9 +127,9 @@ def test_idlepc(router):
def test_idlemax(router):
assert router.idlemax == 1500 # default value
router.idlemax = 500
assert router.idlemax == 500
assert router.idlemax == 500 # default value
router.idlemax = 1500
assert router.idlemax == 1500
def test_idlesleep(router):
@ -172,7 +172,7 @@ def test_confreg(router):
def test_console(router):
assert router.console == router.hypervisor.baseconsole + router.id
assert router.console == 2001
new_console_port = router.console + 100
router.console = new_console_port
assert router.console == new_console_port
@ -180,7 +180,7 @@ def test_console(router):
def test_aux(router):
assert router.aux == router.hypervisor.baseaux + router.id
assert router.aux == 2501
new_aux_port = router.aux + 100
router.aux = new_aux_port
assert router.aux == new_aux_port

View File

@ -8,12 +8,14 @@ def iou(request):
cwd = os.path.dirname(os.path.abspath(__file__))
iou_path = os.path.join(cwd, "i86bi_linux-ipbase-ms-12.4.bin")
iou_device = IOUDevice(iou_path, "/tmp")
iou_device = IOUDevice("IOU1", iou_path, "/tmp")
iou_device.start()
request.addfinalizer(iou_device.delete)
return iou_device
@pytest.mark.skipif(os.environ["TRAVIS"] == "TRUE",
reason="IOU Image not available on Travis")
def test_iou_is_started(iou):
print(iou.command())
@ -21,6 +23,8 @@ def test_iou_is_started(iou):
assert iou.is_running()
@pytest.mark.skipif(os.environ["TRAVIS"] == "TRUE",
reason="IOU Image not available on Travis")
def test_iou_restart(iou):
iou.stop()

View File

@ -6,9 +6,13 @@ import pytest
@pytest.fixture(scope="session")
def vpcs(request):
cwd = os.path.dirname(os.path.abspath(__file__))
vpcs_path = os.path.join(cwd, "vpcs")
vpcs_device = VPCSDevice(vpcs_path, "/tmp")
if os.path.isfile("/usr/bin/vpcs"):
vpcs_path = "/usr/bin/vpcs"
else:
cwd = os.path.dirname(os.path.abspath(__file__))
vpcs_path = os.path.join(cwd, "vpcs")
vpcs_device = VPCSDevice("VPCS1", vpcs_path, "/tmp")
vpcs_device.port_add_nio_binding(0, 'nio_tap:tap0')
vpcs_device.start()
request.addfinalizer(vpcs_device.delete)
return vpcs_device