143 lines
4.7 KiB
Python
143 lines
4.7 KiB
Python
#!/usr/bin/python
|
|
|
|
import mock
|
|
import sys
|
|
|
|
GIDNUMBER = 'pw_gid'
|
|
HOMEDIRECTORY = 'pw_dir'
|
|
|
|
class UsersTest(mock.TestCase):
|
|
def setUp(self):
|
|
self.setupModules(["_isys", "block", "ConfigParser"])
|
|
|
|
self.fs = mock.DiskIO()
|
|
self.anaconda = mock.Mock()
|
|
self.anaconda.security.auth.find.return_value = -1
|
|
|
|
import pyanaconda.users
|
|
pyanaconda.users.log = mock.Mock()
|
|
pyanaconda.users.iutil = mock.Mock()
|
|
pyanaconda.users.iutil.mkdirChain = mock.Mock()
|
|
|
|
pyanaconda.users.os = mock.Mock()
|
|
pyanaconda.users.os.fork.return_value=False
|
|
pyanaconda.users.os.waitpid.return_value=(1, 1)
|
|
pyanaconda.users.os.WEXITSTATUS.return_value=0
|
|
|
|
pyanaconda.users.libuser.admin = mock.Mock()
|
|
pyanaconda.users.libuser.GIDNUMBER = GIDNUMBER
|
|
pyanaconda.users.libuser.HOMEDIRECTORY = HOMEDIRECTORY
|
|
pyanaconda.users.libuser.admin().lookupGroupByName.return_value = False
|
|
pyanaconda.users.libuser.admin().lookupUserByName.return_value = False
|
|
pyanaconda.users.libuser.admin().initGroup().get.return_value = ['']
|
|
pyanaconda.users.libuser.admin().initGroup().reset_mock()
|
|
pyanaconda.users.libuser.admin().reset_mock()
|
|
|
|
def tearDown(self):
|
|
self.tearDownModules()
|
|
|
|
def create_group_test(self):
|
|
import pyanaconda.users
|
|
|
|
GROUP = 'Group'
|
|
GID = 100
|
|
group_dict = { "name" : GROUP,
|
|
"gid" : GID,
|
|
"root" : ""
|
|
}
|
|
|
|
usr = pyanaconda.users.Users(self.anaconda)
|
|
self.assertTrue(usr.createGroup(GROUP, **group_dict))
|
|
|
|
methods = pyanaconda.users.libuser.admin().method_calls[:]
|
|
try:
|
|
if methods[2][0] == 'addGroup':
|
|
methods.pop()
|
|
except:
|
|
pass
|
|
|
|
self.assertEqual(methods,
|
|
[('lookupGroupByName', (GROUP,), {}), ('initGroup', (GROUP,), {}),])
|
|
|
|
self.assertEqual(
|
|
pyanaconda.users.libuser.admin().initGroup().method_calls,
|
|
[('set', (GIDNUMBER, GID), {})])
|
|
|
|
def create_user_test(self):
|
|
import pyanaconda.users
|
|
|
|
USER = 'TestUser'
|
|
PASS = 'abcde'
|
|
user_dict = { "name" : USER,
|
|
"password" : PASS,
|
|
"groups" : [],
|
|
"homedir" : "",
|
|
"isCrypted" : False,
|
|
"shell" : "",
|
|
"uid" : None,
|
|
"root" : ""
|
|
}
|
|
|
|
usr = pyanaconda.users.Users(self.anaconda)
|
|
self.assertTrue(usr.createUser(USER, **user_dict))
|
|
|
|
self.assertTrue(pyanaconda.users.iutil.mkdirChain.called)
|
|
methods = [x[0] for x in pyanaconda.users.libuser.admin().method_calls]
|
|
|
|
self.assertEqual(methods,
|
|
['lookupUserByName', 'initUser', 'initGroup', 'addUser','addGroup',
|
|
'setpassUser', 'lookupGroupByName'])
|
|
|
|
self.assertEqual(pyanaconda.users.libuser.admin().initUser.call_args_list,
|
|
[((USER,), {})])
|
|
|
|
self.assertEqual(pyanaconda.users.libuser.admin().initGroup.call_args_list,
|
|
[((USER,), {})])
|
|
|
|
self.assertEqual(pyanaconda.users.libuser.admin().initUser().method_calls,
|
|
[('set', (GIDNUMBER, ['']), {}),
|
|
('set', (HOMEDIRECTORY, '/home/%s' % USER), {})]
|
|
)
|
|
|
|
self.assertEqual(pyanaconda.users.libuser.admin().initGroup().method_calls,
|
|
[('get', (GIDNUMBER,), {})])
|
|
|
|
def check_user_exists_test(self):
|
|
import pyanaconda.users
|
|
|
|
USER = 'TestUser'
|
|
|
|
usr = pyanaconda.users.Users(self.anaconda)
|
|
self.assertTrue(usr.checkUserExists(USER, root=''))
|
|
self.assertEqual(pyanaconda.users.libuser.admin().method_calls,
|
|
[('lookupUserByName', (USER,), {})])
|
|
|
|
def get_pass_algo_md5_test(self):
|
|
import pyanaconda.users
|
|
usr = pyanaconda.users.Users(self.anaconda)
|
|
self.assertEqual(usr.getPassAlgo(), None)
|
|
|
|
def set_user_password_test(self):
|
|
import pyanaconda.users
|
|
|
|
USER = 'TestUser'
|
|
PASS = 'abcde'
|
|
CRYPTED = False
|
|
LOCK = False
|
|
|
|
usr = pyanaconda.users.Users(self.anaconda)
|
|
usr.setUserPassword(USER, PASS, CRYPTED, LOCK)
|
|
|
|
methods = [x[0] for x in pyanaconda.users.libuser.admin().method_calls]
|
|
self.assertEqual(methods,
|
|
['lookupUserByName', 'setpassUser', 'modifyUser'])
|
|
|
|
def set_root_password_test(self):
|
|
import pyanaconda.users
|
|
|
|
usr = pyanaconda.users.Users(self.anaconda)
|
|
usr.setRootPassword()
|
|
methods = [x[0] for x in pyanaconda.users.libuser.admin().method_calls]
|
|
self.assertEqual(methods,
|
|
['lookupUserByName', 'setpassUser', 'modifyUser'])
|