test_go_isolation_rootfs.py (1490:cecf6b11a1e3) test_go_isolation_rootfs.py (1596:b7e2d4d92624)
1import os
1import os
2import unittest
2import pytest
3
4from unit.applications.lang.go import TestApplicationGo
5
6
7class TestGoIsolationRootfs(TestApplicationGo):
8 prerequisites = {'modules': {'go': 'all'}}
9
3
4from unit.applications.lang.go import TestApplicationGo
5
6
7class TestGoIsolationRootfs(TestApplicationGo):
8 prerequisites = {'modules': {'go': 'all'}}
9
10 def test_go_isolation_rootfs_chroot(self):
11 if not self.is_su:
12 print("requires root")
13 raise unittest.SkipTest()
10 def test_go_isolation_rootfs_chroot(self, is_su):
11 if not is_su:
12 pytest.skip('requires root')
14
15 if os.uname().sysname == 'Darwin':
13
14 if os.uname().sysname == 'Darwin':
16 print('chroot tests not supported on OSX')
17 raise unittest.SkipTest()
15 pytest.skip('chroot tests not supported on OSX')
18
19 isolation = {
16
17 isolation = {
20 'rootfs': self.testdir,
18 'rootfs': self.temp_dir,
21 }
22
23 self.load('ns_inspect', isolation=isolation)
24
25 obj = self.getjson(url='/?file=/go/app')['body']
26
19 }
20
21 self.load('ns_inspect', isolation=isolation)
22
23 obj = self.getjson(url='/?file=/go/app')['body']
24
27 self.assertEqual(obj['FileExists'], True, 'app relative to rootfs')
25 assert obj['FileExists'] == True, 'app relative to rootfs'
28
29 obj = self.getjson(url='/?file=/bin/sh')['body']
26
27 obj = self.getjson(url='/?file=/bin/sh')['body']
30 self.assertEqual(obj['FileExists'], False, 'file should not exists')
31
32
33if __name__ == '__main__':
34 TestGoIsolationRootfs.main()
28 assert obj['FileExists'] == False, 'file should not exists'