Tests: "language_deps" option checked more carefully.

This commit is contained in:
Andrei Zeliankou
2021-01-13 06:24:32 +00:00
parent db9b70932b
commit 22dac5bd62

View File

@@ -2,6 +2,9 @@
import pytest
from unit.applications.lang.python import TestApplicationPython
from unit.option import option
from unit.utils import findmnt
from unit.utils import waitformount
from unit.utils import waitforunmount
class TestPythonIsolation(TestApplicationPython):
@@ -60,39 +63,28 @@ class TestPythonIsolation(TestApplicationPython):
), 'application exists in rootfs'
def test_python_isolation_rootfs_no_language_deps(self, is_su, temp_dir):
isolation_features = option.available['features']['isolation'].keys()
if not is_su:
if not 'unprivileged_userns_clone' in isolation_features:
pytest.skip('requires unprivileged userns or root')
if 'user' not in isolation_features:
pytest.skip('user namespace is not supported')
if 'mnt' not in isolation_features:
pytest.skip('mnt namespace is not supported')
if 'pid' not in isolation_features:
pytest.skip('pid namespace is not supported')
pytest.skip('requires root')
isolation = {
'rootfs': temp_dir,
'automount': {'language_deps': False}
}
if not is_su:
isolation['namespaces'] = {
'mount': True,
'credential': True,
'pid': True
}
self.load('empty', isolation=isolation)
assert findmnt().find(temp_dir) == -1
assert (self.get()['status'] != 200), 'disabled language_deps'
assert findmnt().find(temp_dir) == -1
isolation['automount']['language_deps'] = True
self.load('empty', isolation=isolation)
assert findmnt().find(temp_dir) == -1
assert (self.get()['status'] == 200), 'enabled language_deps'
assert waitformount(temp_dir), 'language_deps mount'
self.conf({"listeners": {}, "applications": {}})
assert waitforunmount(temp_dir), 'language_deps unmount'