Make sure used ports in a project are cleaned up when closing it.

This commit is contained in:
grossmj committed 2015-03-21 17:19:12 -06:00
1 parent 2d6d153262
commit 153914bf97
17 files changed
+127 -65

No files matched your search

+3 -3
View File
@@ -114,14 +114,14 @@ def port_manager():
@pytest.fixture(scope="function")
def free_console_port(request, port_manager):
def free_console_port(request, port_manager, project):
"""Get a free TCP port"""
# In case of already use ports we will raise an exception
port = port_manager.get_free_tcp_port()
port = port_manager.get_free_tcp_port(project)
# We release the port immediately in order to allow
# the test do whatever the test want
port_manager.release_tcp_port(port)
port_manager.release_tcp_port(port, project)
return port
+1 -1
View File
@@ -185,7 +185,7 @@ def test_close(vm, port_manager, loop):
port = vm.console
loop.run_until_complete(asyncio.async(vm.close()))
# Raise an exception if the port is not free
port_manager.reserve_tcp_port(port)
port_manager.reserve_tcp_port(port, vm.project)
assert vm.is_running() is False
+2 -2
View File
@@ -156,9 +156,9 @@ def test_close(vm, port_manager, loop):
loop.run_until_complete(asyncio.async(vm.close()))
# Raise an exception if the port is not free
port_manager.reserve_tcp_port(console_port)
port_manager.reserve_tcp_port(console_port, vm.project)
# Raise an exception if the port is not free
port_manager.reserve_tcp_port(monitor_port)
port_manager.reserve_tcp_port(monitor_port, vm.project)
assert vm.is_running() is False
+4 -3
View File
@@ -18,10 +18,11 @@
import aiohttp
import pytest
from gns3server.modules.port_manager import PortManager
from gns3server.modules.project import Project
def test_reserve_tcp_port():
pm = PortManager()
pm.reserve_tcp_port(4242)
project = Project()
pm.reserve_tcp_port(4242, project)
with pytest.raises(aiohttp.web.HTTPConflict):
pm.reserve_tcp_port(4242)
pm.reserve_tcp_port(4242, project)
+6 -6
View File
@@ -191,14 +191,14 @@ def test_get_startup_script_using_default_script(vm):
def test_change_console_port(vm, port_manager):
port1 = port_manager.get_free_tcp_port()
port2 = port_manager.get_free_tcp_port()
port_manager.release_tcp_port(port1)
port_manager.release_tcp_port(port2)
port1 = port_manager.get_free_tcp_port(vm.project)
port2 = port_manager.get_free_tcp_port(vm.project)
port_manager.release_tcp_port(port1, vm.project)
port_manager.release_tcp_port(port2, vm.project)
vm.console = port1
vm.console = port2
assert vm.console == port2
port_manager.reserve_tcp_port(port1)
port_manager.reserve_tcp_port(port1, vm.project)
def test_change_name(vm, tmpdir):
@@ -219,5 +219,5 @@ def test_close(vm, port_manager, loop):
port = vm.console
loop.run_until_complete(asyncio.async(vm.close()))
# Raise an exception if the port is not free
port_manager.reserve_tcp_port(port)
port_manager.reserve_tcp_port(port, vm.project)
assert vm.is_running() is False