xref: /unit/test/test_ruby_isolation.py (revision 2491:aae60837ac20)
1from unit.applications.lang.ruby import ApplicationRuby
2
3prerequisites = {'modules': {'ruby': 'any'}, 'features': {'isolation': True}}
4
5client = ApplicationRuby()
6
7
8def test_ruby_isolation_rootfs(is_su, require, temp_dir):
9    isolation = {'rootfs': temp_dir}
10
11    if not is_su:
12        require(
13            {
14                'features': {
15                    'isolation': [
16                        'unprivileged_userns_clone',
17                        'user',
18                        'mnt',
19                        'pid',
20                    ]
21                }
22            }
23        )
24
25        isolation['namespaces'] = {
26            'mount': True,
27            'credential': True,
28            'pid': True,
29        }
30
31    client.load('status_int', isolation=isolation)
32
33    assert 'success' in client.conf(
34        '"/ruby/status_int/config.ru"',
35        'applications/status_int/script',
36    )
37
38    assert 'success' in client.conf(
39        '"/ruby/status_int"',
40        'applications/status_int/working_directory',
41    )
42
43    assert client.get()['status'] == 200, 'status int'
44