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 import pytest
from unit.applications.lang.python import TestApplicationPython from unit.applications.lang.python import TestApplicationPython
from unit.option import option from unit.option import option
from unit.utils import findmnt
from unit.utils import waitformount
from unit.utils import waitforunmount
class TestPythonIsolation(TestApplicationPython): class TestPythonIsolation(TestApplicationPython):
@@ -60,39 +63,28 @@ class TestPythonIsolation(TestApplicationPython):
), 'application exists in rootfs' ), 'application exists in rootfs'
def test_python_isolation_rootfs_no_language_deps(self, is_su, temp_dir): 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 is_su:
if not 'unprivileged_userns_clone' in isolation_features: pytest.skip('requires root')
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')
isolation = { isolation = {
'rootfs': temp_dir, 'rootfs': temp_dir,
'automount': {'language_deps': False} 'automount': {'language_deps': False}
} }
if not is_su:
isolation['namespaces'] = {
'mount': True,
'credential': True,
'pid': True
}
self.load('empty', isolation=isolation) self.load('empty', isolation=isolation)
assert findmnt().find(temp_dir) == -1
assert (self.get()['status'] != 200), 'disabled language_deps' assert (self.get()['status'] != 200), 'disabled language_deps'
assert findmnt().find(temp_dir) == -1
isolation['automount']['language_deps'] = True isolation['automount']['language_deps'] = True
self.load('empty', isolation=isolation) self.load('empty', isolation=isolation)
assert findmnt().find(temp_dir) == -1
assert (self.get()['status'] == 200), 'enabled language_deps' 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'