def test_create_default(self, mock_log, mock_rollback, mock_libuser, mock_users_model, mock_create_group, mock_create_user): """ unittest to validate create method with only username and password mock_log: mock of wok_log imported in model.users mock_rollback: mock of RollbackContext imported in model.users mock_libuser: mock of libuser imported in model.users mock_users_model: mock of UsersModel() in model.users mock_create_group: mock of create_group() in model.users mock_create_user: mock of create_user() in model.users """ mock_adm = mock_libuser.admin() mock_users = mock_users_model() inpt = {'name': 'user1', 'password': '******'} mock_users._validate_create_params.return_value = { 'name': 'user1', 'password': '******', 'group': None, 'profile': 'regularuser', 'no_login': '******'} mock_create_group.return_value = 1400 users = UsersModel() users.create(inpt) self.assertFalse(mock_adm.lookupGroupByName.called, msg='Unexpected call to mock_adm.lookupGroupByName') self.assertFalse(mock_adm.lookupGroupByName.called, msg='Unexpected call to mock_adm.lookupGroupByName') self.assertFalse(mock_users._add_user_to_kvm_group.called, msg='Unexpected call to ' 'mock_users._add_user_to_kvm_group') self.assertFalse(mock_users._add_user_to_sudoers.called, msg='Unexpected call to ' 'mock_users._add_user_to_sudoers') mock_create_group.assert_called_once_with('user1') mock_create_user.assert_called_once_with('user1', 'password', 1400, no_login=False)
def test_create_user(self): users_model = UsersModel() user_model = UserModel() user = '******' passwd = 'fakepass' group = 'unit_test_fake_group' profile = 'unit_test_fake_profile' common_users = users_model.get_list() params = {'name': user, 'password': passwd, 'group': group, 'profile': profile} with RollbackContext() as rollback: users_model.create(params) rollback.prependDefer(user_model.delete, user) new_users = users_model.get_list() self.assertEqual(len(new_users), len(common_users) + 1) enc_passwd = spwd.getspnam(user)[1] invalid_passwd = [None, "NP", "!", "!!", "", "LK", "*"] self.assertNotIn(enc_passwd, invalid_passwd) self.assertEqual(crypt.crypt(passwd, enc_passwd), enc_passwd)
def test_addto_sudoers_success(self, mock_log, mock_os): """ unittest to validate _add_user_to_sudoers() method with exception in file creation mock_log: mock of wok_log imported in model.users mock_os: mock of os imported in model.users """ f = '/etc/sudoers.d/user1_conf' open_mock = mock.mock_open(read_data='1') with mock.patch('plugins.ginger.model.users.open', open_mock, create=True): users = UsersModel() users._add_user_to_sudoers('user1') mock_os.chmod.assert_called_once_with(f, 0440)
def test_addto_kvm_grp_success(self, mock_log, mock_libuser, mock_get_grp_obj): """ unittest to validate _add_user_to_sudoers() method for success scenario mock_log: mock of wok_log imported in model.users mock_libuser: mock of libuser imported in model.users mock_get_grp_obj: mock of get_group_obj() method of model.users """ mock_adm = mock_libuser.admin() mock_adm.modifyGroup.return_value = 1 users = UsersModel() users._add_user_to_kvm_group('user1') self.assertTrue(mock_adm.modifyGroup.called, msg='Expected call to adm.modifyGroup(). Not Called.') mock_get_grp_obj.assert_called_once_with('kvm')
def test_creating_existing_user_fails(self): users_model = UsersModel() user_model = UserModel() user = '******' passwd = 'fakepass' group = 'unit_test_fake_group' profile = 'unit_test_fake_profile' params = {'name': user, 'password': passwd, 'group': group, 'profile': profile} with RollbackContext() as rollback: users_model.create(params) rollback.prependDefer(user_model.delete, user) with self.assertRaises(OperationFailed): users_model.create(params)
def test_get_users_list(self): model = UsersModel() users = model.get_list() self.assertGreaterEqual(len(users), 0)