diff options
| author | Konstantin Pavlov <thresh@nginx.com> | 2023-08-31 09:41:46 -0700 |
|---|---|---|
| committer | Konstantin Pavlov <thresh@nginx.com> | 2023-08-31 09:41:46 -0700 |
| commit | c45c8919c7232eb20023484f6d1fc9f1f50395d8 (patch) | |
| tree | cc12eb307c1611494948645e4b487fa06495c3d2 /test/test_ruby_isolation.py | |
| parent | 88c90e1c351ab8c5bd487a5cd4b735014b08e271 (diff) | |
| parent | 9b22b6957bc87b3df002d0bc691fdae6a20abdac (diff) | |
| download | unit-c45c8919c7232eb20023484f6d1fc9f1f50395d8.tar.gz unit-c45c8919c7232eb20023484f6d1fc9f1f50395d8.tar.bz2 | |
Merged with the default branch.1.31.0-1
Diffstat (limited to 'test/test_ruby_isolation.py')
| -rw-r--r-- | test/test_ruby_isolation.py | 69 |
1 files changed, 33 insertions, 36 deletions
diff --git a/test/test_ruby_isolation.py b/test/test_ruby_isolation.py index ea208523..59c0e5f6 100644 --- a/test/test_ruby_isolation.py +++ b/test/test_ruby_isolation.py @@ -1,46 +1,43 @@ -import pytest -from unit.applications.lang.ruby import TestApplicationRuby -from unit.option import option +from unit.applications.lang.ruby import ApplicationRuby +prerequisites = {'modules': {'ruby': 'any'}, 'features': {'isolation': True}} -class TestRubyIsolation(TestApplicationRuby): - prerequisites = {'modules': {'ruby': 'any'}, 'features': ['isolation']} +client = ApplicationRuby() - def test_ruby_isolation_rootfs(self, is_su): - 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') +def test_ruby_isolation_rootfs(is_su, require, temp_dir): + isolation = {'rootfs': temp_dir} - 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 = {'rootfs': option.temp_dir} - - if not is_su: - isolation['namespaces'] = { - 'mount': True, - 'credential': True, - 'pid': True, + if not is_su: + require( + { + 'features': { + 'isolation': [ + 'unprivileged_userns_clone', + 'user', + 'mnt', + 'pid', + ] + } } + ) - self.load('status_int', isolation=isolation) + isolation['namespaces'] = { + 'mount': True, + 'credential': True, + 'pid': True, + } - assert 'success' in self.conf( - '"/ruby/status_int/config.ru"', - 'applications/status_int/script', - ) + client.load('status_int', isolation=isolation) - assert 'success' in self.conf( - '"/ruby/status_int"', - 'applications/status_int/working_directory', - ) + assert 'success' in client.conf( + '"/ruby/status_int/config.ru"', + 'applications/status_int/script', + ) + + assert 'success' in client.conf( + '"/ruby/status_int"', + 'applications/status_int/working_directory', + ) - assert self.get()['status'] == 200, 'status int' + assert client.get()['status'] == 200, 'status int' |
