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_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)