summaryrefslogtreecommitdiffhomepage
path: root/test/test_go_isolation.py
diff options
context:
space:
mode:
authorTiago Natel <t.nateldemoura@f5.com>2019-11-09 20:14:52 +0000
committerTiago Natel <t.nateldemoura@f5.com>2019-11-09 20:14:52 +0000
commit19b974674c1fdd8fc46eb0877d2a8ff8b794490d (patch)
tree7d436f600dfe8a4bd7e66ff20be0b9ced6e48fb8 /test/test_go_isolation.py
parent94a9162baa82809ec58a3d06ca3489c7e7fed6ed (diff)
downloadunit-19b974674c1fdd8fc46eb0877d2a8ff8b794490d.tar.gz
unit-19b974674c1fdd8fc46eb0877d2a8ff8b794490d.tar.bz2
Tests: fixed tests to run as root.
- The mode of testdir was changed to allow reading from other users/groups. - The java multipart test now uploads the file into an app writable dir. - The build directory was made readable for other users. - The python environment test now uses the HOME env var instead of PWD because the latter is not set by the root shell (/bin/sh) by default. - The node `node_modules` directory now is copied into the `testdir` instead of using symlinks.
Diffstat (limited to 'test/test_go_isolation.py')
-rw-r--r--test/test_go_isolation.py33
1 files changed, 23 insertions, 10 deletions
diff --git a/test/test_go_isolation.py b/test/test_go_isolation.py
index ee5ddf47..a937c7a5 100644
--- a/test/test_go_isolation.py
+++ b/test/test_go_isolation.py
@@ -1,4 +1,5 @@
-import os
+import pwd
+import grp
import json
import unittest
from unit.applications.lang.go import TestApplicationGo
@@ -45,38 +46,50 @@ class TestGoIsolation(TestApplicationGo):
raise unittest.SkipTest()
self.load('ns_inspect')
+
+ user_id = pwd.getpwnam('nobody').pw_uid
+
+ try:
+ group_id = grp.getgrnam('nogroup').gr_gid
+ except:
+ group_id = grp.getgrnam('nobody').gr_gid
+
obj = self.isolation.parsejson(self.get()['body'])
self.assertTrue(obj['UID'] != 0, 'uid not zero')
self.assertTrue(obj['GID'] != 0, 'gid not zero')
- self.assertEqual(obj['UID'], os.getuid(), 'uid match')
- self.assertEqual(obj['GID'], os.getgid(), 'gid match')
+
+ if self.is_su:
+ self.assertEqual(obj['UID'], user_id, 'uid match')
+ self.assertEqual(obj['GID'], group_id, 'gid match')
+ else:
+ self.assertEqual(obj['UID'], self.uid, 'uid match')
+ self.assertEqual(obj['GID'], self.gid, 'gid match')
self.conf_isolation({"namespaces": {"credential": True}})
obj = self.isolation.parsejson(self.get()['body'])
# default uid and gid maps current user to nobody
- self.assertEqual(obj['UID'], 65534, 'uid nobody')
- self.assertEqual(obj['GID'], 65534, 'gid nobody')
+ self.assertEqual(obj['UID'], user_id, 'uid nobody')
+ self.assertEqual(obj['GID'], group_id, 'gid nobody')
self.conf_isolation(
{
"namespaces": {"credential": True},
"uidmap": [
- {"container": 1000, "host": os.geteuid(), "size": 1}
+ {"container": user_id, "host": self.uid, "size": 1}
],
"gidmap": [
- {"container": 1000, "host": os.getegid(), "size": 1}
+ {"container": group_id, "host": self.gid, "size": 1}
],
}
)
obj = self.isolation.parsejson(self.get()['body'])
- # default uid and gid maps current user to root
- self.assertEqual(obj['UID'], 1000, 'uid root')
- self.assertEqual(obj['GID'], 1000, 'gid root')
+ self.assertEqual(obj['UID'], user_id, 'uid match')
+ self.assertEqual(obj['GID'], group_id, 'gid match')
def test_isolation_mnt(self):
if not self.isolation_key('mnt'):