1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-11-28 11:18:11 +00:00

Test the stop method

This commit is contained in:
Julien Duponchelle 2015-01-15 14:27:33 +01:00
parent 6bb2b88f1a
commit 3abcac43ab
3 changed files with 15 additions and 5 deletions

View File

@ -208,7 +208,7 @@ class VPCSDevice(BaseVM):
else: else:
self._process.terminate() self._process.terminate()
self._process.wait() yield from self._process.wait()
self._process = None self._process = None
self._started = False self._started = False

View File

@ -153,7 +153,7 @@ class Server:
self._loop.run_until_complete(self._run_application(app)) self._loop.run_until_complete(self._run_application(app))
self._signal_handling() self._signal_handling()
#FIXME: remove it in production #FIXME: remove it in production or in tests
self._loop.call_later(1, self._reload_hook) self._loop.call_later(1, self._reload_hook)
try: try:
self._loop.run_forever() self._loop.run_forever()

View File

@ -22,7 +22,7 @@ from tests.utils import asyncio_patch
#Move loop to util #Move loop to util
from tests.api.base import loop from tests.api.base import loop
from asyncio.subprocess import Process from asyncio.subprocess import Process
from unittest.mock import patch, Mock from unittest.mock import patch, MagicMock
from gns3server.modules.vpcs.vpcs_device import VPCSDevice from gns3server.modules.vpcs.vpcs_device import VPCSDevice
from gns3server.modules.vpcs.vpcs_error import VPCSError from gns3server.modules.vpcs.vpcs_error import VPCSError
@ -46,8 +46,18 @@ def test_vm_invalid_vpcs_path(tmpdir):
assert vm.id == 42 assert vm.id == 42
def test_start(tmpdir, loop): def test_start(tmpdir, loop):
with asyncio_patch("asyncio.create_subprocess_exec", return_value=Mock()): with asyncio_patch("asyncio.create_subprocess_exec", return_value=MagicMock()):
vm = VPCSDevice("test", 42, working_dir=str(tmpdir), path="/bin/test_fake") vm = VPCSDevice("test", 42, working_dir=str(tmpdir), path="/bin/test")
loop.run_until_complete(asyncio.async(vm.start())) loop.run_until_complete(asyncio.async(vm.start()))
assert vm.is_running() == True assert vm.is_running() == True
def test_stop(tmpdir, loop):
process = MagicMock()
with asyncio_patch("asyncio.create_subprocess_exec", return_value=process):
vm = VPCSDevice("test", 42, working_dir=str(tmpdir), path="/bin/test")
loop.run_until_complete(asyncio.async(vm.start()))
assert vm.is_running() == True
loop.run_until_complete(asyncio.async(vm.stop()))
assert vm.is_running() == False
process.terminate.assert_called_with()