Skip to content

Commit

Permalink
Merge pull request #50847 from twangboy/fix_user_tests
Browse files Browse the repository at this point in the history
Fix failing tests
  • Loading branch information
Mike Place authored Dec 13, 2018
2 parents c4eba60 + 8e3c2c8 commit c16d0f3
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 89 deletions.
8 changes: 6 additions & 2 deletions salt/modules/win_groupadd.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ def add(name, **kwargs):
return False
else:
log.warning('The group {0} already exists.'.format(name))

return False
return True


Expand Down Expand Up @@ -158,6 +158,7 @@ def delete(name, **kwargs):
return False
else:
log.warning('The group {0} does not exists.'.format(name))
return False

return True

Expand Down Expand Up @@ -187,7 +188,7 @@ def info(name):
except pywintypes.com_error as exc:
msg = 'Failed to access group {0}. {1}'.format(
name, win32api.FormatMessage(exc.excepinfo[5]))
log.error(msg)
log.debug(msg)
return False

if not gr_name:
Expand Down Expand Up @@ -275,6 +276,7 @@ def adduser(name, username, **kwargs):
log.info('Added user {0}'.format(username))
else:
log.warning('User {0} is already a member of {1}'.format(username, name))
return False
except pywintypes.com_error as exc:
msg = 'Failed to add {0} to group {1}. {2}'.format(
username, name, win32api.FormatMessage(exc.excepinfo[5]))
Expand Down Expand Up @@ -321,10 +323,12 @@ def deluser(name, username, **kwargs):
log.info('Removed user {0}'.format(username))
else:
log.warning('User {0} is not a member of {1}'.format(username, name))
return False
except pywintypes.com_error as exc:
msg = 'Failed to remove {0} from group {1}. {2}'.format(
username, name, win32api.FormatMessage(exc.excepinfo[5]))
log.error(msg)
return False

return True

Expand Down
40 changes: 9 additions & 31 deletions tests/integration/modules/test_groupadd.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,13 +119,7 @@ def test_add(self):
self.assertEqual(group_info['gid'], self._gid)
self.assertEqual(group_info['name'], self._group)
# try adding the group again
if self.os_grain['kernel'] == 'Windows':
add_group = self.run_function('group.add', [self._group], gid=self._gid)
self.assertEqual(add_group['result'], None)
self.assertEqual(add_group['comment'], 'The group {0} already exists.'.format(self._group))
self.assertEqual(add_group['changes'], [])
else:
self.assertFalse(self.run_function('group.add', [self._group], gid=self._gid))
self.assertFalse(self.run_function('group.add', [self._group], gid=self._gid))

@destructiveTest
@skipIf(salt.utils.platform.is_windows(), 'Skip on Windows')
Expand Down Expand Up @@ -176,12 +170,7 @@ def test_delete(self):
self.assertTrue(self.run_function('group.delete', [self._group]))

# group does not exist
if self.os_grain['kernel'] == 'Windows':
del_group = self.run_function('group.delete', [self._no_group])
self.assertEqual(del_group['changes'], [])
self.assertEqual(del_group['comment'], 'The group {0} does not exists.'.format(self._no_group))
else:
self.assertFalse(self.run_function('group.delete', [self._no_group]))
self.assertFalse(self.run_function('group.delete', [self._no_group]))

def test_info(self):
'''
Expand Down Expand Up @@ -215,20 +204,12 @@ def test_adduser(self):
self.assertTrue(self.run_function('group.adduser', [self._group, self._user]))
group_info = self.run_function('group.info', [self._group])
self.assertIn(self._user, str(group_info['members']))
if self.os_grain['kernel'] == 'Windows':
no_group = self.run_function('group.adduser', [self._no_group, self._no_user])
no_user = self.run_function('group.adduser', [self._group, self._no_user])
funcs = [no_group, no_user]
for func in funcs:
self.assertIn('Fail', func['comment'])
self.assertFalse(func['result'])
else:
# try add a non existing user
self.assertFalse(self.run_function('group.adduser', [self._group, self._no_user]))
# try add a user to non existing group
self.assertFalse(self.run_function('group.adduser', [self._no_group, self._user]))
# try add a non existing user to a non existing group
self.assertFalse(self.run_function('group.adduser', [self._no_group, self._no_user]))
# try add a non existing user
self.assertFalse(self.run_function('group.adduser', [self._group, self._no_user]))
# try add a user to non existing group
self.assertFalse(self.run_function('group.adduser', [self._no_group, self._user]))
# try add a non existing user to a non existing group
self.assertFalse(self.run_function('group.adduser', [self._no_group, self._no_user]))

def test_deluser(self):
'''
Expand All @@ -250,10 +231,7 @@ def test_members(self):
self.run_function('user.add', [self._user1])
m = '{0},{1}'.format(self._user, self._user1)
ret = self.run_function('group.members', [self._group, m])
if salt.utils.platform.is_windows():
self.assertTrue(ret['result'])
else:
self.assertTrue(ret)
self.assertTrue(ret)
group_info = self.run_function('group.info', [self._group])
self.assertIn(self._user, str(group_info['members']))
self.assertIn(self._user1, str(group_info['members']))
Expand Down
68 changes: 12 additions & 56 deletions tests/integration/modules/test_useradd.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ def _add_user(self):
helper class to add user
'''
if self.run_function('user.add', [self.user_name]) is False:
self.run_function('user.delete', [self.user_name, True, True])
# Skip because creating is not what we're testing here
self.skipTest('Failed to create user')

def _add_group(self):
Expand All @@ -139,77 +139,33 @@ def _add_group(self):
'''
if self.run_function('group.add', [self.group_name]) is False:
# Skip because creating is not what we're testing here
self.run_function('group.delete', [self.group_name, True, True])
self.skipTest('Failed to create group')

def test_add_user(self):
'''
Test adding a user
'''
user_name = self.__random_string()

try:
if self.run_function('user.add', [user_name]) is False:
self.run_function('user.delete', [user_name, True, True])
self.skipTest('Failed to create user')

user_list = self.run_function('user.list_users')
self.assertIn(user_name, user_list)

except AssertionError:
raise

finally:
self.run_function('user.delete', [user_name, True, True])
self._add_user()
user_list = self.run_function('user.list_users')
self.assertIn(self.user_name, user_list)

def test_add_group(self):
'''
Test adding a user
'''
group_name = self.__random_string()
try:
if self.run_function('group.add', [group_name]) is False:
# Skip because creating is not what we're testing here
self.run_function('group.delete', [group_name, True, True])
self.skipTest('Failed to create group')

group_list = self.run_function('group.list_groups')
self.assertIn(group_name, group_list)

except AssertionError:
raise

finally:
self.run_function('group.delete', [group_name])
self._add_group()
group_list = self.run_function('group.list_groups')
self.assertIn(self.group_name, group_list)

def test_add_user_to_group(self):
'''
Test adding a user to a group
'''
group_name = self.__random_string()
user_name = self.__random_string()
try:
# Let's create a group
if self.run_function(
'group.add', [group_name])['result'] is not True:
self.run_function('group.delete', [group_name, True, True])
self.skipTest('Failed to create group')

# And create the user as a member of that group
if self.run_function(
'user.add', [user_name], groups=group_name) is False:
self.run_function('user.delete', [user_name, True, True])
self.skipTest('Failed to create user')

user_info = self.run_function('user.info', [user_name])
self.assertIn(group_name, user_info['groups'])

except AssertionError:
raise

finally:
self.run_function('user.delete', [user_name, True, True])
self.run_function('group.delete', [group_name])
self._add_group()
# And create the user as a member of that group
self.run_function('user.add', [self.user_name], groups=self.group_name)
user_info = self.run_function('user.info', [self.user_name])
self.assertIn(self.group_name, user_info['groups'])

def test_add_user_addgroup(self):
'''
Expand Down

0 comments on commit c16d0f3

Please sign in to comment.