summaryrefslogtreecommitdiffhomepage
path: root/test/test_php_isolation.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_php_isolation.py')
-rw-r--r--test/test_php_isolation.py66
1 files changed, 30 insertions, 36 deletions
diff --git a/test/test_php_isolation.py b/test/test_php_isolation.py
index aebeefa6..e8471015 100644
--- a/test/test_php_isolation.py
+++ b/test/test_php_isolation.py
@@ -1,30 +1,26 @@
-import pytest
from unit.applications.lang.php import TestApplicationPHP
-from unit.option import option
+prerequisites = {'modules': {'php': 'any'}, 'features': {'isolation': True}}
-class TestPHPIsolation(TestApplicationPHP):
- prerequisites = {'modules': {'php': 'any'}, 'features': ['isolation']}
-
- def test_php_isolation_rootfs(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')
+class TestPHPIsolation(TestApplicationPHP):
+ def test_php_isolation_rootfs(self, is_su, require, temp_dir):
isolation = {'rootfs': temp_dir}
if not is_su:
+ require(
+ {
+ 'features': {
+ 'isolation': [
+ 'unprivileged_userns_clone',
+ 'user',
+ 'mnt',
+ 'pid',
+ ]
+ }
+ }
+ )
+
isolation['namespaces'] = {
'mount': True,
'credential': True,
@@ -42,25 +38,23 @@ class TestPHPIsolation(TestApplicationPHP):
assert self.get()['status'] == 200, 'empty rootfs'
- def test_php_isolation_rootfs_extensions(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')
-
+ def test_php_isolation_rootfs_extensions(self, is_su, require, temp_dir):
isolation = {'rootfs': temp_dir}
if not is_su:
+ require(
+ {
+ 'features': {
+ 'isolation': [
+ 'unprivileged_userns_clone',
+ 'user',
+ 'mnt',
+ 'pid',
+ ]
+ }
+ }
+ )
+
isolation['namespaces'] = {
'mount': True,
'credential': True,