Merge pull request #27 from dlintott/master

Override check_origin and fix test suite
This commit is contained in:
Jeremy Grossmann 2014-08-10 15:27:49 -06:00
commit 90c8c4312c
13 changed files with 59 additions and 41 deletions

View File

@ -1,14 +1,19 @@
language: python
python:
- "3.3"
- "3.4"
env:
- TOX_ENV=py33
- TOX_ENV=py34
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"
- pip install tox
- sudo apt-get install vpcs dynamips
script: "python setup.py test"
script:
- tox -e $TOX_ENV
branches:
only:

View File

@ -52,6 +52,9 @@ class JSONRPCWebSocket(tornado.websocket.WebSocketHandler):
self._session_id = str(uuid.uuid4())
self.zmq_router = zmq_router
def check_origin(self, origin):
return True
@property
def session_id(self):
"""

View File

@ -23,5 +23,5 @@
# or negative for a release candidate or beta (after the base version
# number has been incremented)
__version__ = "1.0beta1"
__version__ = "1.0beta2-dev1"
__version_info__ = (1, 0, 0, -99)

View File

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

View File

@ -20,7 +20,7 @@ from setuptools import setup, find_packages
from setuptools.command.test import test as TestCommand
class Tox(TestCommand):
class PyTest(TestCommand):
def finalize_options(self):
TestCommand.finalize_options(self)
@ -29,8 +29,8 @@ class Tox(TestCommand):
def run_tests(self):
#import here, cause outside the eggs aren't loaded
import tox
errcode = tox.cmdline(self.test_args)
import pytest
errcode = pytest.main(self.test_args)
sys.exit(errcode)
setup(
@ -38,8 +38,8 @@ setup(
version=__import__("gns3server").__version__,
url="http://github.com/GNS3/gns3-server",
license="GNU General Public License v3 (GPLv3)",
tests_require=["tox"],
cmdclass={"test": Tox},
tests_require=["pytest"],
cmdclass={"test": PyTest},
author="Jeremy Grossmann",
author_email="package-maintainer@gns3.net",
description="GNS3 server to asynchronously manage emulators",

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

@ -1,6 +1,5 @@
from gns3server.modules.dynamips import Hypervisor
import time
import os
def test_is_started(hypervisor):
@ -10,7 +9,7 @@ def test_is_started(hypervisor):
def test_port(hypervisor):
assert hypervisor.port == 9000
assert hypervisor.port == 7200
def test_host(hypervisor):
@ -25,8 +24,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
@ -34,11 +32,10 @@ def test_stdout():
# try to launch Dynamips on the same port
# this will fail so that we can read its stdout/stderr
cwd = os.path.dirname(os.path.abspath(__file__))
dynamips_path = os.path.join(cwd, "dynamips.stable")
hypervisor = Hypervisor(dynamips_path, "/tmp", "172.0.0.1", 7200)
dynamips_path = '/usr/bin/dynamips'
hypervisor = Hypervisor(dynamips_path, "/tmp", "127.0.0.1", 7200)
hypervisor.start()
# give some time for Dynamips to start
time.sleep(0.01)
time.sleep(0.1)
output = hypervisor.read_stdout()
assert output

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

@ -3,17 +3,28 @@ import os
import pytest
def no_iou():
cwd = os.path.dirname(os.path.abspath(__file__))
iou_path = os.path.join(cwd, "i86bi_linux-ipbase-ms-12.4.bin")
if os.path.isfile(iou_path):
return False
else:
return True
@pytest.fixture(scope="session")
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(no_iou(), reason="IOU Image not available")
def test_iou_is_started(iou):
print(iou.command())
@ -21,6 +32,7 @@ def test_iou_is_started(iou):
assert iou.is_running()
@pytest.mark.skipif(no_iou(), reason="IOU Image not available")
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

View File

@ -2,6 +2,6 @@
envlist = py33, py34
[testenv]
commands = py.test [] -s tests
commands = python setup.py test
deps = -rdev-requirements.txt