Tests: added tests for setting user and group.
This commit is contained in:
parent
abbad122bb
commit
c6a11260e8
2 changed files with 95 additions and 0 deletions
18
test/python/user_group/wsgi.py
Normal file
18
test/python/user_group/wsgi.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
import json
|
||||
import os
|
||||
|
||||
def application(environ, start_response):
|
||||
uid = os.geteuid()
|
||||
gid = os.getegid()
|
||||
|
||||
out = json.dumps({
|
||||
'UID': uid,
|
||||
'GID': gid,
|
||||
}).encode('utf-8')
|
||||
|
||||
start_response('200 OK', [
|
||||
('Content-Length', str(len(out))),
|
||||
('Content-Type', 'application/json')
|
||||
])
|
||||
|
||||
return [out]
|
|
@ -1,4 +1,7 @@
|
|||
import re
|
||||
import os
|
||||
import grp
|
||||
import pwd
|
||||
import time
|
||||
import unittest
|
||||
from unit.applications.lang.python import TestApplicationPython
|
||||
|
@ -676,5 +679,79 @@ Connection: close
|
|||
len(self.findall(r'Traceback')), 8, 'traceback count 8'
|
||||
)
|
||||
|
||||
def test_python_user_group(self):
|
||||
if not self.is_su:
|
||||
print("requires root")
|
||||
raise unittest.SkipTest()
|
||||
|
||||
nobody_uid = pwd.getpwnam('nobody').pw_uid
|
||||
|
||||
group = 'nobody'
|
||||
|
||||
try:
|
||||
group_id = grp.getgrnam(group).gr_gid
|
||||
except:
|
||||
group = 'nogroup'
|
||||
group_id = grp.getgrnam(group).gr_gid
|
||||
|
||||
self.load('user_group')
|
||||
|
||||
obj = self.getjson()['body']
|
||||
self.assertEqual(obj['UID'], nobody_uid, 'nobody uid')
|
||||
self.assertEqual(obj['GID'], group_id, 'nobody gid')
|
||||
|
||||
self.load('user_group', user='nobody')
|
||||
|
||||
obj = self.getjson()['body']
|
||||
self.assertEqual(obj['UID'], nobody_uid, 'nobody uid user=nobody')
|
||||
self.assertEqual(obj['GID'], group_id, 'nobody gid user=nobody')
|
||||
|
||||
self.load('user_group', user='nobody', group=group)
|
||||
|
||||
obj = self.getjson()['body']
|
||||
self.assertEqual(
|
||||
obj['UID'], nobody_uid, 'nobody uid user=nobody group=%s' % group
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
obj['GID'], group_id, 'nobody gid user=nobody group=%s' % group
|
||||
)
|
||||
|
||||
self.load('user_group', group=group)
|
||||
|
||||
obj = self.getjson()['body']
|
||||
self.assertEqual(
|
||||
obj['UID'], nobody_uid, 'nobody uid group=%s' % group
|
||||
)
|
||||
|
||||
self.assertEqual(obj['GID'], group_id, 'nobody gid group=%s' % group)
|
||||
|
||||
self.load('user_group', user='root')
|
||||
|
||||
obj = self.getjson()['body']
|
||||
self.assertEqual(obj['UID'], 0, 'root uid user=root')
|
||||
self.assertEqual(obj['GID'], 0, 'root gid user=root')
|
||||
|
||||
group = 'root'
|
||||
|
||||
try:
|
||||
grp.getgrnam(group)
|
||||
group = True
|
||||
except:
|
||||
group = False
|
||||
|
||||
if group:
|
||||
self.load('user_group', user='root', group='root')
|
||||
|
||||
obj = self.getjson()['body']
|
||||
self.assertEqual(obj['UID'], 0, 'root uid user=root group=root')
|
||||
self.assertEqual(obj['GID'], 0, 'root gid user=root group=root')
|
||||
|
||||
self.load('user_group', group='root')
|
||||
|
||||
obj = self.getjson()['body']
|
||||
self.assertEqual(obj['UID'], nobody_uid, 'root uid group=root')
|
||||
self.assertEqual(obj['GID'], 0, 'root gid group=root')
|
||||
|
||||
if __name__ == '__main__':
|
||||
TestPythonApplication.main()
|
||||
|
|
Loading…
Reference in a new issue