You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qubes-installer-qubes-os/anaconda/old_tests/pyanaconda_test/users_test.py

143 lines
4.7 KiB

#!/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'])