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.
This commit is contained in:
@@ -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')
|
||||
|
||||
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,
|
||||
|
||||
Reference in New Issue
Block a user