Allow tests to be run by root. Fixes #1784

This commit is contained in:
grossmj 2020-06-29 18:43:35 +09:30
parent 8bd3e2346b
commit 27da8458e8
3 changed files with 13 additions and 10 deletions

View File

@ -17,6 +17,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os
import sys
import uuid
import asyncio
import pytest
@ -149,6 +150,7 @@ async def test_project_delete():
assert os.path.exists(directory) is False
@pytest.mark.skipif(not sys.platform.startswith("win") and os.getuid() == 0, reason="Root can delete any project")
async def test_project_delete_permission_issue():
project = Project(project_id=str(uuid4()))

View File

@ -16,6 +16,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import pytest
import sys
import os
import stat
from unittest.mock import patch
@ -184,13 +185,13 @@ async def test_upload_image(compute_api, images_dir):
assert checksum == "033bd94b1168d7e4f0d644c3c95e35bf"
async def test_upload_image_permission_denied(compute_api, tmpdir, images_dir):
@pytest.mark.skipif(not sys.platform.startswith("win") and os.getuid() == 0, reason="Root can delete any image")
async def test_upload_image_permission_denied(compute_api, images_dir):
os.makedirs(os.path.join(images_dir, "IOS"), exist_ok=True)
with open(os.path.join(images_dir, "IOS", "test2.tmp"), "w+") as f:
f.write("")
os.chmod(os.path.join(images_dir, "IOS", "test2.tmp"), 0)
with patch("gns3server.utils.images.default_images_directory", return_value=str(tmpdir)):
response = await compute_api.post("/dynamips/images/test2", body="TEST", raw=True)
assert response.status == 409
response = await compute_api.post("/dynamips/images/test2", body="TEST", raw=True)
assert response.status == 409

View File

@ -315,15 +315,15 @@ async def test_upload_image_forbiden_location(compute_api, tmpdir):
assert response.status == 404
async def test_upload_image_permission_denied(compute_api, tmpdir):
@pytest.mark.skipif(not sys.platform.startswith("win") and os.getuid() == 0, reason="Root can delete any image")
async def test_upload_image_permission_denied(compute_api, images_dir):
with open(str(tmpdir / "test2.tmp"), "w+") as f:
with open(os.path.join(images_dir, "QEMU", "test2.tmp"), "w+") as f:
f.write("")
os.chmod(str(tmpdir / "test2.tmp"), 0)
os.chmod(os.path.join(images_dir, "QEMU", "test2.tmp"), 0)
with patch("gns3server.compute.Qemu.get_images_directory", return_value=str(tmpdir)):
response = await compute_api.post("/qemu/images/test2", body="TEST", raw=True)
assert response.status == 409
response = await compute_api.post("/qemu/images/test2", body="TEST", raw=True)
assert response.status == 409
async def test_create_img_relative(compute_api):