Deleted
Added
test_ruby_isolation.py (1730:44912af5b3e6) | test_ruby_isolation.py (1737:9be01e5d6ce5) |
---|---|
1import shutil 2 | 1import shutil 2 |
3import os |
|
3import pytest 4 5from conftest import unit_run 6from conftest import unit_stop 7from unit.applications.lang.ruby import TestApplicationRuby 8from unit.feature.isolation import TestFeatureIsolation 9from unit.option import option 10 --- 10 unchanged lines hidden (view full) --- 21 22 TestFeatureIsolation().check(option.available, unit['temp_dir']) 23 24 assert unit_stop() is None 25 shutil.rmtree(unit['temp_dir']) 26 27 return check if not complete_check else check() 28 | 4import pytest 5 6from conftest import unit_run 7from conftest import unit_stop 8from unit.applications.lang.ruby import TestApplicationRuby 9from unit.feature.isolation import TestFeatureIsolation 10from unit.option import option 11 --- 10 unchanged lines hidden (view full) --- 22 23 TestFeatureIsolation().check(option.available, unit['temp_dir']) 24 25 assert unit_stop() is None 26 shutil.rmtree(unit['temp_dir']) 27 28 return check if not complete_check else check() 29 |
29 def test_ruby_isolation_rootfs_mount_namespace(self, is_su): | 30 def test_ruby_isolation_rootfs(self, is_su): |
30 isolation_features = option.available['features']['isolation'].keys() 31 32 if not is_su: 33 if not 'unprivileged_userns_clone' in isolation_features: 34 pytest.skip('requires unprivileged userns or root') 35 36 if 'user' not in isolation_features: 37 pytest.skip('user namespace is not supported') 38 39 if 'mnt' not in isolation_features: 40 pytest.skip('mnt namespace is not supported') 41 42 if 'pid' not in isolation_features: 43 pytest.skip('pid namespace is not supported') 44 | 31 isolation_features = option.available['features']['isolation'].keys() 32 33 if not is_su: 34 if not 'unprivileged_userns_clone' in isolation_features: 35 pytest.skip('requires unprivileged userns or root') 36 37 if 'user' not in isolation_features: 38 pytest.skip('user namespace is not supported') 39 40 if 'mnt' not in isolation_features: 41 pytest.skip('mnt namespace is not supported') 42 43 if 'pid' not in isolation_features: 44 pytest.skip('pid namespace is not supported') 45 |
45 isolation = {'rootfs': option.test_dir} | 46 isolation = {'rootfs': option.temp_dir} |
46 47 if not is_su: 48 isolation['namespaces'] = { 49 'mount': True, 50 'credential': True, | 47 48 if not is_su: 49 isolation['namespaces'] = { 50 'mount': True, 51 'credential': True, |
51 'pid': True | 52 'pid': True, |
52 } 53 | 53 } 54 |
54 self.load('status_int', isolation=isolation) | 55 os.mkdir(option.temp_dir + '/ruby') |
55 | 56 |
56 assert 'success' in self.conf( 57 '"/ruby/status_int/config.ru"', 'applications/status_int/script', | 57 shutil.copytree( 58 option.test_dir + '/ruby/status_int', 59 option.temp_dir + '/ruby/status_int', |
58 ) 59 | 60 ) 61 |
60 assert 'success' in self.conf( 61 '"/ruby/status_int"', 'applications/status_int/working_directory', 62 ) 63 64 assert self.get()['status'] == 200, 'status int' 65 66 def test_ruby_isolation_rootfs(self, is_su): 67 if not is_su: 68 pytest.skip('requires root') 69 return 70 71 isolation = {'rootfs': option.test_dir} 72 | |
73 self.load('status_int', isolation=isolation) 74 75 assert 'success' in self.conf( 76 '"/ruby/status_int/config.ru"', 'applications/status_int/script', 77 ) 78 79 assert 'success' in self.conf( 80 '"/ruby/status_int"', 'applications/status_int/working_directory', 81 ) 82 83 assert self.get()['status'] == 200, 'status int' | 62 self.load('status_int', isolation=isolation) 63 64 assert 'success' in self.conf( 65 '"/ruby/status_int/config.ru"', 'applications/status_int/script', 66 ) 67 68 assert 'success' in self.conf( 69 '"/ruby/status_int"', 'applications/status_int/working_directory', 70 ) 71 72 assert self.get()['status'] == 200, 'status int' |