gns3-server/tests/dynamips/test_c1700.py

168 lines
4.7 KiB
Python

from gns3server.modules.dynamips import C1700
from gns3server.modules.dynamips import DynamipsError
from gns3server.modules.dynamips import WIC_2T
from gns3server.modules.dynamips import WIC_1ENET
from gns3server.modules.dynamips import NIO_Null
import pytest
@pytest.fixture
def router_c1700(request, hypervisor):
router = C1700(hypervisor, "c1700 router")
request.addfinalizer(router.delete)
return router
def test_router_exists(router_c1700):
assert router_c1700.platform == "c1700"
assert router_c1700.list()
def test_chassis_1721(hypervisor):
router = C1700(hypervisor, "1721 chassis", chassis="1721")
assert router.chassis == "1721"
assert str(router.slots[0]) == "C1700-MB-1FE"
router.delete()
def test_chassis_change_to_1721(router_c1700):
assert router_c1700.chassis == "1720" # default chassis
router_c1700.chassis = "1721"
assert router_c1700.chassis == "1721"
def test_chassis_1750(hypervisor):
router = C1700(hypervisor, "1750 chassis", chassis="1750")
assert router.chassis == "1750"
assert str(router.slots[0]) == "C1700-MB-1FE"
router.delete()
def test_chassis_change_to_1750(router_c1700):
assert router_c1700.chassis == "1720" # default chassis
router_c1700.chassis = "1750"
assert router_c1700.chassis == "1750"
def test_chassis_1751(hypervisor):
router = C1700(hypervisor, "1751 chassis", chassis="1751")
assert router.chassis == "1751"
assert str(router.slots[0]) == "C1700-MB-1FE"
router.delete()
def test_chassis_change_to_1751(router_c1700):
assert router_c1700.chassis == "1720" # default chassis
router_c1700.chassis = "1751"
assert router_c1700.chassis == "1751"
def test_chassis_1760(hypervisor):
router = C1700(hypervisor, "1760 chassis", chassis="1760")
assert router.chassis == "1760"
assert str(router.slots[0]) == "C1700-MB-1FE"
router.delete()
def test_chassis_change_to_1760(router_c1700):
assert router_c1700.chassis == "1720" # default chassis
router_c1700.chassis = "1760"
assert router_c1700.chassis == "1760"
def test_iomem(router_c1700):
assert router_c1700.iomem == 15 # default value
router_c1700.iomem = 20
assert router_c1700.iomem == 20
def test_mac_addr(router_c1700):
assert router_c1700.mac_addr != None
router_c1700.mac_addr = "aa:aa:aa:aa:aa:aa"
assert router_c1700.mac_addr == "aa:aa:aa:aa:aa:aa"
def test_bogus_mac_addr(router_c1700):
with pytest.raises(DynamipsError):
router_c1700.mac_addr = "zz:zz:zz:zz:zz:zz"
def test_system_id(router_c1700):
assert router_c1700.system_id == "FTX0945W0MY" # default value
router_c1700.system_id = "FTX0945W0MO"
assert router_c1700.system_id == "FTX0945W0MO"
def test_get_hardware_info(router_c1700):
router_c1700.get_hardware_info() # FIXME: Dynamips doesn't return anything
def test_install_remove_wic(router_c1700):
wic = WIC_2T()
router_c1700.install_wic(0, wic) # install in WIC slot 0
assert router_c1700.slots[0].wics[0]
wic = WIC_1ENET()
router_c1700.install_wic(1, wic) # install in WIC slot 1
assert router_c1700.slots[0].wics[1]
router_c1700.uninstall_wic(0) # uninstall WIC from slot 0
assert not router_c1700.slots[0].wics[0]
def test_install_wic_into_wrong_slot(router_c1700):
wic = WIC_2T()
with pytest.raises(DynamipsError):
router_c1700.install_wic(2, wic) # install in WIC slot 2
def test_install_wic_into_already_occupied_slot(router_c1700):
wic = WIC_2T()
router_c1700.install_wic(0, wic) # install in WIC slot 0
wic = WIC_1ENET()
with pytest.raises(DynamipsError):
router_c1700.install_wic(0, wic) # install in WIC slot 0
def test_wic_add_remove_nio_binding(router_c1700):
nio = NIO_Null(router_c1700.hypervisor)
wic = WIC_2T()
router_c1700.install_wic(0, wic) # install WIC in slot 0
router_c1700.slot_add_nio_binding(0, 17, nio) # slot 0/17 (slot 0, wic 0, port 1)
assert router_c1700.slots[0].ports[17] == nio
assert router_c1700.get_slot_nio_bindings(slot_id=0)
router_c1700.slot_remove_nio_binding(0, 17) # slot 0/17 (slot 0, wic 0, port 1)
assert not router_c1700.get_slot_nio_bindings(slot_id=0)
assert not router_c1700.slots[0].ports[17] == nio
nio.delete()
def test_wic_add_remove_nio_binding_for_chassis_1760(hypervisor):
router = C1700(hypervisor, "1760 chassis", chassis="1760")
nio = NIO_Null(router.hypervisor)
wic = WIC_2T()
router.install_wic(1, wic) # install WIC in slot 1
router.slot_add_nio_binding(0, 32, nio) # slot 0/17 (slot 0, wic 1, port 0)
router.slot_remove_nio_binding(0, 32)
assert not router.get_slot_nio_bindings(slot_id=0)
nio.delete()
router.delete()