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

Fix tests

This commit is contained in:
grossmj 2021-04-05 14:39:50 +09:30
parent 566e326b57
commit 5217dbf3a3
3 changed files with 20 additions and 59 deletions

View File

@ -61,7 +61,7 @@ class Controller:
self._config_file = Config.instance().controller_config self._config_file = Config.instance().controller_config
log.info("Load controller configuration file {}".format(self._config_file)) log.info("Load controller configuration file {}".format(self._config_file))
async def start(self, computes): async def start(self, computes=None):
log.info("Controller is starting") log.info("Controller is starting")
self.load_base_files() self.load_base_files()
@ -108,6 +108,8 @@ class Controller:
except ControllerError: except ControllerError:
log.fatal("Cannot access to the local server, make sure something else is not running on the TCP port {}".format(port)) log.fatal("Cannot access to the local server, make sure something else is not running on the TCP port {}".format(port))
sys.exit(1) sys.exit(1)
if computes:
for c in computes: for c in computes:
try: try:
await self.add_compute(**c, connect=False) await self.add_compute(**c, connect=False)

View File

@ -182,7 +182,17 @@ class Compute:
@name.setter @name.setter
def name(self, name): def name(self, name):
if name is not None:
self._name = name self._name = name
else:
if self._user:
user = self._user
# Due to random user generated by 1.4 it's common to have a very long user
if len(user) > 14:
user = user[:11] + "..."
self._name = "{}://{}@{}:{}".format(self._protocol, user, self._host, self._port)
else:
self._name = "{}://{}:{}".format(self._protocol, self._host, self._port)
@property @property
def connected(self): def connected(self):

View File

@ -34,7 +34,6 @@ def test_save(controller, controller_config_path):
assert os.path.exists(controller_config_path) assert os.path.exists(controller_config_path)
with open(controller_config_path) as f: with open(controller_config_path) as f:
data = json.load(f) data = json.load(f)
assert data["computes"] == []
assert data["version"] == __version__ assert data["version"] == __version__
assert data["iou_license"] == controller.iou_license assert data["iou_license"] == controller.iou_license
assert data["gns3vm"] == controller.gns3vm.__json__() assert data["gns3vm"] == controller.gns3vm.__json__()
@ -45,20 +44,10 @@ def test_load_controller_settings(controller, controller_config_path):
controller.save() controller.save()
with open(controller_config_path) as f: with open(controller_config_path) as f:
data = json.load(f) data = json.load(f)
data["computes"] = [
{
"host": "localhost",
"port": 8000,
"protocol": "http",
"user": "admin",
"password": "root",
"compute_id": "test1"
}
]
data["gns3vm"] = {"vmname": "Test VM"} data["gns3vm"] = {"vmname": "Test VM"}
with open(controller_config_path, "w+") as f: with open(controller_config_path, "w+") as f:
json.dump(data, f) json.dump(data, f)
assert len(controller._load_controller_settings()) == 1 controller._load_controller_settings()
assert controller.gns3vm.settings["vmname"] == "Test VM" assert controller.gns3vm.settings["vmname"] == "Test VM"
@ -67,7 +56,6 @@ def test_load_controller_settings_with_no_computes_section(controller, controlle
controller.save() controller.save()
with open(controller_config_path) as f: with open(controller_config_path) as f:
data = json.load(f) data = json.load(f)
del data['computes']
with open(controller_config_path, "w+") as f: with open(controller_config_path, "w+") as f:
json.dump(data, f) json.dump(data, f)
assert len(controller._load_controller_settings()) == 0 assert len(controller._load_controller_settings()) == 0
@ -146,22 +134,6 @@ async def test_addDuplicateCompute(controller):
await controller.add_compute(compute_id="test2", name="Test", connect=False) await controller.add_compute(compute_id="test2", name="Test", connect=False)
@pytest.mark.asyncio
async def test_deleteCompute(controller, controller_config_path):
c = await controller.add_compute(compute_id="test1", connect=False)
assert len(controller.computes) == 1
controller._notification = MagicMock()
c._connected = True
await controller.delete_compute("test1")
assert len(controller.computes) == 0
controller._notification.controller_emit.assert_called_with("compute.deleted", c.__json__())
with open(controller_config_path) as f:
data = json.load(f)
assert len(data["computes"]) == 0
assert c.connected is False
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_deleteComputeProjectOpened(controller, controller_config_path): async def test_deleteComputeProjectOpened(controller, controller_config_path):
""" """
@ -185,9 +157,6 @@ async def test_deleteComputeProjectOpened(controller, controller_config_path):
await controller.delete_compute("test1") await controller.delete_compute("test1")
assert len(controller.computes) == 0 assert len(controller.computes) == 0
controller._notification.controller_emit.assert_called_with("compute.deleted", c.__json__()) controller._notification.controller_emit.assert_called_with("compute.deleted", c.__json__())
with open(controller_config_path) as f:
data = json.load(f)
assert len(data["computes"]) == 0
assert c.connected is False assert c.connected is False
# Project 1 use this compute it should be close before deleting the compute # Project 1 use this compute it should be close before deleting the compute
@ -195,26 +164,6 @@ async def test_deleteComputeProjectOpened(controller, controller_config_path):
assert project2.status == "opened" assert project2.status == "opened"
@pytest.mark.asyncio
async def test_addComputeConfigFile(controller, controller_config_path):
await controller.add_compute(compute_id="test1", name="Test", connect=False)
assert len(controller.computes) == 1
with open(controller_config_path) as f:
data = json.load(f)
assert data["computes"] == [
{
'compute_id': 'test1',
'name': 'Test',
'host': 'localhost',
'port': 3080,
'protocol': 'http',
'user': None,
'password': None
}
]
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_getCompute(controller): async def test_getCompute(controller):