summaryrefslogtreecommitdiffhomepage
path: root/test/test_ruby_isolation.py
diff options
context:
space:
mode:
authorAndrei Zeliankou <zelenkov@nginx.com>2023-06-12 14:16:59 +0100
committerAndrei Zeliankou <zelenkov@nginx.com>2023-06-12 14:16:59 +0100
commitce2405ec3dd97e8bdf8f63312e3c6ce59ef562d4 (patch)
tree818e60eb10d7f2be90f25003b3a2b347314e966f /test/test_ruby_isolation.py
parenta3b9b49cfb091410ca8f3c8d9df24d1fe184f8e0 (diff)
downloadunit-ce2405ec3dd97e8bdf8f63312e3c6ce59ef562d4.tar.gz
unit-ce2405ec3dd97e8bdf8f63312e3c6ce59ef562d4.tar.bz2
Tests: prerequisites checking reworked.
Prerequisites check moved to the module level to simplify class structure. Discovery and prerequisites checks functions moved to the separate files. Introduced "require" fixture to provide per-test requirements check.
Diffstat (limited to '')
-rw-r--r--test/test_ruby_isolation.py36
1 files changed, 16 insertions, 20 deletions
diff --git a/test/test_ruby_isolation.py b/test/test_ruby_isolation.py
index 3ec06d86..82a12dff 100644
--- a/test/test_ruby_isolation.py
+++ b/test/test_ruby_isolation.py
@@ -1,30 +1,26 @@
-import pytest
from unit.applications.lang.ruby import TestApplicationRuby
-from unit.option import option
+prerequisites = {'modules': {'ruby': 'any'}, 'features': {'isolation': True}}
-class TestRubyIsolation(TestApplicationRuby):
- prerequisites = {'modules': {'ruby': 'any'}, 'features': ['isolation']}
-
- def test_ruby_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 TestRubyIsolation(TestApplicationRuby):
+ def test_ruby_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,