mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Fix unit tests
This commit is contained in:
parent
56a6f6bb83
commit
79bc7195dc
2 changed files with 92 additions and 51 deletions
|
@ -54,9 +54,11 @@ def installed(name, recurse=False, force=False):
|
|||
# Determine if the feature is installed
|
||||
old = __salt__['win_servermanager.list_installed']()
|
||||
if name not in old:
|
||||
ret['comment'] = '{0} will be installed recurse={1}'.format(name, recurse)
|
||||
ret['changes']['feature'] = \
|
||||
'{0} will be installed recurse={1}'.format(name, recurse)
|
||||
elif force and recurse:
|
||||
ret['comment'] = '{0} already installed but might install sub-features'.format(name)
|
||||
ret['changes']['feature'] = \
|
||||
'{0} already installed but might install sub-features'.format(name)
|
||||
else:
|
||||
ret['comment'] = 'The feature {0} is already installed'.format(name)
|
||||
return ret
|
||||
|
@ -65,22 +67,23 @@ def installed(name, recurse=False, force=False):
|
|||
ret['result'] = None
|
||||
return ret
|
||||
|
||||
ret['changes'] = {}
|
||||
|
||||
# Install the features
|
||||
status = __salt__['win_servermanager.install'](name, recurse)
|
||||
|
||||
ret['result'] = status['Success']
|
||||
if not ret['result']:
|
||||
ret['comment'] = 'Failed to install {0}: {1}'.format(name, ret['changes']['feature']['ExitCode'])
|
||||
|
||||
if 'already installed' not in status['DisplayName']:
|
||||
ret['changes']['feature'] = status
|
||||
ret['comment'] = 'Failed to install {0}: {1}'\
|
||||
.format(name, status['ExitCode'])
|
||||
|
||||
new = __salt__['win_servermanager.list_installed']()
|
||||
changes = salt.utils.compare_dicts(old, new)
|
||||
|
||||
if changes:
|
||||
ret['changes']['features'] = changes
|
||||
ret['changes']['restart_needed'] = status['RestartNeeded']
|
||||
ret['comment'] = 'Installed {0}'.format(name)
|
||||
ret['changes'] = status
|
||||
ret['changes']['feature'] = changes
|
||||
|
||||
return ret
|
||||
|
||||
|
@ -116,7 +119,7 @@ def removed(name):
|
|||
# Determine if the feature is installed
|
||||
old = __salt__['win_servermanager.list_installed']()
|
||||
if name in old:
|
||||
ret['comment'] = '{0} will be removed'.format(name)
|
||||
ret['changes']['feature'] = '{0} will be removed'.format(name)
|
||||
else:
|
||||
ret['comment'] = 'The feature {0} is not installed'.format(name)
|
||||
return ret
|
||||
|
@ -125,18 +128,22 @@ def removed(name):
|
|||
ret['result'] = None
|
||||
return ret
|
||||
|
||||
ret['changes'] = {}
|
||||
|
||||
# Remove the features
|
||||
status = __salt__['win_servermanager.remove'](name)
|
||||
|
||||
ret['result'] = status['Success']
|
||||
if not ret['result']:
|
||||
ret['comment'] = 'Failed to uninstall the feature {0}'.format(ret['changes']['feature']['ExitCode'])
|
||||
ret['comment'] = 'Failed to uninstall the feature {0}'\
|
||||
.format(status['ExitCode'])
|
||||
|
||||
new = __salt__['win_servermanager.list_installed']()
|
||||
changes = salt.utils.compare_dicts(old, new)
|
||||
|
||||
if changes:
|
||||
ret['changes']['features'] = changes
|
||||
ret['changes']['restart_needed'] = status['RestartNeeded']
|
||||
ret['comment'] = 'Removed {0}'.format(name)
|
||||
ret['changes'] = status
|
||||
ret['changes']['feature'] = changes
|
||||
|
||||
return ret
|
||||
|
|
|
@ -35,58 +35,92 @@ class WinServermanagerTestCase(TestCase):
|
|||
'''
|
||||
Test to install the windows feature
|
||||
'''
|
||||
ret = {'name': 'salt',
|
||||
'changes': {},
|
||||
'result': True,
|
||||
'comment': ''}
|
||||
mock = MagicMock(side_effect=['salt', 'stack', 'stack'])
|
||||
mock1 = MagicMock(return_value={'Success': True})
|
||||
mock_list = MagicMock(
|
||||
side_effect=[{'spongebob': 'squarepants'},
|
||||
{'squidward': 'patrick'},
|
||||
{'spongebob': 'squarepants'},
|
||||
{'spongebob': 'squarepants',
|
||||
'squidward': 'patrick'}])
|
||||
mock_install = MagicMock(
|
||||
return_value={'Success': True,
|
||||
'RestartNeeded': False,
|
||||
'ExitCode': 1234})
|
||||
with patch.dict(win_servermanager.__salt__,
|
||||
{"win_servermanager.list_installed": mock,
|
||||
"win_servermanager.install": mock1}):
|
||||
ret.update({'comment': 'The feature salt is already installed'})
|
||||
self.assertDictEqual(win_servermanager.installed('salt'), ret)
|
||||
{"win_servermanager.list_installed": mock_list,
|
||||
"win_servermanager.install": mock_install}):
|
||||
ret = {'name': 'spongebob',
|
||||
'changes': {},
|
||||
'result': True,
|
||||
'comment': 'The feature spongebob is already installed'}
|
||||
self.assertDictEqual(win_servermanager.installed('spongebob'), ret)
|
||||
|
||||
with patch.dict(win_servermanager.__opts__, {"test": True}):
|
||||
ret.update({'changes': {'feature':
|
||||
'salt will be installed'
|
||||
' recurse=False'}, 'result': None,
|
||||
'comment': ''})
|
||||
self.assertDictEqual(win_servermanager.installed('salt'), ret)
|
||||
ret = {'name': 'spongebob',
|
||||
'result': None,
|
||||
'comment': '',
|
||||
'changes': {
|
||||
'feature': 'spongebob will be installed '
|
||||
'recurse=False'}}
|
||||
self.assertDictEqual(
|
||||
win_servermanager.installed('spongebob'), ret)
|
||||
|
||||
with patch.dict(win_servermanager.__opts__, {"test": False}):
|
||||
ret.update({'changes': {'feature': {'Success': True}},
|
||||
'result': True, 'comment': 'Installed salt'})
|
||||
self.assertDictEqual(win_servermanager.installed('salt'),
|
||||
ret)
|
||||
with patch.dict(win_servermanager.__opts__, {"test": False}):
|
||||
ret = {'name': 'squidward',
|
||||
'result': True,
|
||||
'comment': 'Installed squidward',
|
||||
'changes': {
|
||||
'Success': True,
|
||||
'RestartNeeded': False,
|
||||
'ExitCode': 1234,
|
||||
'feature': {'squidward': {'new': 'patrick',
|
||||
'old': ''}}}}
|
||||
self.assertDictEqual(
|
||||
win_servermanager.installed('squidward'), ret)
|
||||
|
||||
def test_removed(self):
|
||||
'''
|
||||
Test to remove the windows feature
|
||||
'''
|
||||
ret = {'name': 'salt',
|
||||
'changes': {},
|
||||
'result': True,
|
||||
'comment': ''}
|
||||
mock = MagicMock(side_effect=['stack', 'salt', 'salt'])
|
||||
mock1 = MagicMock(return_value={'Success': True})
|
||||
mock_list = MagicMock(
|
||||
side_effect=[{'spongebob': 'squarepants'},
|
||||
{'squidward': 'patrick'},
|
||||
{'spongebob': 'squarepants',
|
||||
'squidward': 'patrick'},
|
||||
{'spongebob': 'squarepants'}])
|
||||
mock_remove = MagicMock(
|
||||
return_value={'Success': True,
|
||||
'RestartNeeded': False,
|
||||
'ExitCode': 1234})
|
||||
with patch.dict(win_servermanager.__salt__,
|
||||
{"win_servermanager.list_installed": mock,
|
||||
"win_servermanager.remove": mock1}):
|
||||
ret.update({'comment': 'The feature salt is not installed'})
|
||||
self.assertDictEqual(win_servermanager.removed('salt'), ret)
|
||||
{"win_servermanager.list_installed": mock_list,
|
||||
"win_servermanager.remove": mock_remove}):
|
||||
ret = {'name': 'squidward',
|
||||
'changes': {},
|
||||
'result': True,
|
||||
'comment': 'The feature squidward is not installed'}
|
||||
self.assertDictEqual(
|
||||
win_servermanager.removed('squidward'), ret)
|
||||
|
||||
with patch.dict(win_servermanager.__opts__, {"test": True}):
|
||||
ret.update({'changes': {'feature':
|
||||
'salt will be removed'},
|
||||
'result': None, 'comment': ''})
|
||||
self.assertDictEqual(win_servermanager.removed('salt'), ret)
|
||||
ret = {'name': 'squidward',
|
||||
'result': None,
|
||||
'comment': '',
|
||||
'changes': {'feature': 'squidward will be removed'}}
|
||||
self.assertDictEqual(
|
||||
win_servermanager.removed('squidward'), ret)
|
||||
|
||||
with patch.dict(win_servermanager.__opts__, {"test": False}):
|
||||
ret.update({'changes': {'feature': {'Success': True}},
|
||||
'result': True})
|
||||
self.assertDictEqual(win_servermanager.removed('salt'),
|
||||
ret)
|
||||
with patch.dict(win_servermanager.__opts__, {"test": False}):
|
||||
ret = {'name': 'squidward',
|
||||
'result': True,
|
||||
'comment': 'Removed squidward',
|
||||
'changes': {
|
||||
'Success': True,
|
||||
'RestartNeeded': False,
|
||||
'ExitCode': 1234,
|
||||
'feature': {'squidward': {'new': '',
|
||||
'old': 'patrick'}}}}
|
||||
self.assertDictEqual(
|
||||
win_servermanager.removed('squidward'), ret)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Add table
Reference in a new issue