1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-11-13 20:08:55 +00:00

Raise an error if you overwrite an existing project

This commit is contained in:
Julien Duponchelle 2016-07-18 21:30:30 +02:00
parent c12413e0ce
commit 3b70b4f217
No known key found for this signature in database
GPG Key ID: CE8B29639E07F5E8
2 changed files with 19 additions and 3 deletions

View File

@ -51,6 +51,12 @@ class Project:
self._name = name
self._auto_start = False
self._status = status
# Disallow overwrite of existing project
if project_id is None and path is not None:
if os.path.exists(path):
raise aiohttp.web.HTTPForbidden(text="The path {} already exist.".format(path))
if project_id is None:
self._id = str(uuid4())
else:
@ -187,7 +193,6 @@ class Project:
return name
raise aiohttp.web.HTTPConflict(text="A node name could not be allocated (node limit reached?)")
def has_allocated_node_name(self, name):
"""
Returns either a node name is already allocated or not.

View File

@ -56,6 +56,17 @@ def test_path(tmpdir):
assert os.path.exists(os.path.join(directory, p.id))
def test_path_exist(tmpdir):
"""
Should raise an error when you try to owerwrite
an existing project
"""
os.makedirs(str(tmpdir / "demo"))
with pytest.raises(aiohttp.web.HTTPForbidden):
p = Project(name="Test", path=str(tmpdir / "demo"))
def test_init_path(tmpdir):
p = Project(path=str(tmpdir), project_id=str(uuid4()), name="Test")
@ -69,8 +80,8 @@ def test_changing_path_with_quote_not_allowed(tmpdir):
def test_captures_directory(tmpdir):
p = Project(path=str(tmpdir), name="Test")
assert p.captures_directory == str(tmpdir / "project-files" / "captures")
p = Project(path=str(tmpdir / "capturestest"), name="Test")
assert p.captures_directory == str(tmpdir / "capturestest" / "project-files" / "captures")
assert os.path.exists(p.captures_directory)