Deleted Added
1import pytest
2
3from conftest import option
4from unit.applications.lang.php import TestApplicationPHP
5from unit.feature.isolation import TestFeatureIsolation
6
7
8class TestPHPIsolation(TestApplicationPHP):
9 prerequisites = {'modules': {'php': 'any'}, 'features': ['isolation']}
10
11 isolation = TestFeatureIsolation()
12
13 @classmethod
14 def setup_class(cls, complete_check=True):
15 unit = super().setup_class(complete_check=False)
16
17 TestFeatureIsolation().check(cls.available, unit.temp_dir)
18
19 return unit if not complete_check else unit.complete()
20
21 def test_php_isolation_rootfs(self, is_su):
22 isolation_features = self.available['features']['isolation'].keys()
23
24 if 'mnt' not in isolation_features:
25 pytest.skip('requires mnt ns')
26
27 if not is_su:
28 if 'user' not in isolation_features:
29 pytest.skip('requires unprivileged userns or root')
30

--- 12 unchanged lines hidden (view full) ---

43 )
44 assert 'success' in self.conf(
45 '"/php/phpinfo"', 'applications/phpinfo/working_directory'
46 )
47
48 assert self.get()['status'] == 200, 'empty rootfs'
49
50 def test_php_isolation_rootfs_extensions(self, is_su):
51 isolation_features = self.available['features']['isolation'].keys()
52
53 if not is_su:
54 if 'user' not in isolation_features:
55 pytest.skip('requires unprivileged userns or root')
56
57 if not 'unprivileged_userns_clone' in isolation_features:
58 pytest.skip('requires unprivileged userns or root')
59

--- 28 unchanged lines hidden ---