Deleted Added
1import unittest
2
3from unit.applications.lang.php import TestApplicationPHP
4from unit.feature.isolation import TestFeatureIsolation
5
6
7class TestPHPIsolation(TestApplicationPHP):
8 prerequisites = {'modules': {'php': 'any'}, 'features': ['isolation']}

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

102 )
103
104 extensions = self.getjson()['body']
105
106 self.assertIn('json', extensions, 'json in extensions list')
107 self.assertIn('unit', extensions, 'unit in extensions list')
108
109
110 def test_php_isolation_rootfs_no_language_libs(self):
111 isolation_features = self.available['features']['isolation'].keys()
112
113 if not self.is_su:
114 if 'user' not in isolation_features:
115 print('requires unprivileged userns or root')
116 raise unittest.SkipTest()
117
118 if not 'unprivileged_userns_clone' in isolation_features:
119 print('requires unprivileged userns or root')
120 raise unittest.SkipTest()
121
122 if 'mnt' not in isolation_features:
123 print('requires mnt ns')
124 raise unittest.SkipTest()
125
126 isolation = {
127 'rootfs': self.current_dir,
128 'automount': {'language_deps': False},
129 'namespaces': {
130 'credential': not self.is_su,
131 'mount': not self.is_su,
132 },
133 }
134
135 self.load('list-extensions', isolation=isolation)
136
137 self.assertIn(
138 'success',
139 self.conf(
140 '"/php/list-extensions"', 'applications/list-extensions/root'
141 ),
142 )
143
144 self.assertIn(
145 'success',
146 self.conf(
147 {'file': '/php/list-extensions/php.ini'},
148 'applications/list-extensions/options',
149 ),
150 )
151
152 self.assertIn(
153 'success',
154 self.conf(
155 '"/php/list-extensions"',
156 'applications/list-extensions/working_directory',
157 ),
158 )
159
160 extensions = self.getjson()['body']
161
162 self.assertIn('unit', extensions, 'unit in extensions list')
163 self.assertNotIn('json', extensions, 'json not in extensions list')
164
165 self.assertIn(
166 'success',
167 self.conf(
168 {'language_deps': True},
169 'applications/list-extensions/isolation/automount',
170 ),
171 )
172
173 extensions = self.getjson()['body']
174
175 self.assertIn('unit', extensions, 'unit in extensions list 2')
176 self.assertIn('json', extensions, 'json in extensions list 2')
177
178
179if __name__ == '__main__':
180 TestPHPIsolation.main()