mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
states.test.configurable_test_state: add unit tests
This commit is contained in:
parent
c2d0679c4b
commit
87e018af2a
1 changed files with 194 additions and 12 deletions
|
@ -18,6 +18,7 @@ from salttesting.mock import (
|
|||
ensure_in_syspath('../../')
|
||||
|
||||
# Import Salt Libs
|
||||
from salt.exceptions import SaltInvocationError
|
||||
from salt.states import test
|
||||
|
||||
# Globals
|
||||
|
@ -88,19 +89,200 @@ class TestTestCase(TestCase):
|
|||
|
||||
def test_configurable_test_state(self):
|
||||
'''
|
||||
Test of a configurable test state which
|
||||
determines its output based on the inputs.
|
||||
Test test.configurable_test_state with and without comment
|
||||
'''
|
||||
ret = {'name': 'salt',
|
||||
'changes': {},
|
||||
'result': True,
|
||||
'comment': ''}
|
||||
with patch.dict(test.__opts__, {"test": False}):
|
||||
ret.update({'changes': {'testing': {'new': 'Something pretended'
|
||||
' to change',
|
||||
'old': 'Unchanged'}},
|
||||
'comment': 'Success!'})
|
||||
self.assertDictEqual(test.succeed_with_changes('salt'), ret)
|
||||
# Configure mock parameters
|
||||
mock_name = 'cheese_shop'
|
||||
mock_comment = "I'm afraid we're fresh out of Red Leicester sir."
|
||||
mock_changes = {
|
||||
'testing': {
|
||||
'old': 'Unchanged',
|
||||
'new': 'Something pretended to change'
|
||||
}
|
||||
}
|
||||
|
||||
# Test default state with comment
|
||||
with patch.dict(test.__opts__, {'test': False}):
|
||||
mock_ret = {'name': mock_name,
|
||||
'changes': mock_changes,
|
||||
'result': True,
|
||||
'comment': ''}
|
||||
ret = test.configurable_test_state(mock_name)
|
||||
self.assertDictEqual(ret, mock_ret)
|
||||
|
||||
# Test default state without comment
|
||||
with patch.dict(test.__opts__, {'test': False}):
|
||||
mock_ret = {'name': mock_name,
|
||||
'changes': mock_changes,
|
||||
'result': True,
|
||||
'comment': mock_comment}
|
||||
ret = test.configurable_test_state(mock_name,
|
||||
comment=mock_comment)
|
||||
self.assertDictEqual(ret, mock_ret)
|
||||
|
||||
def test_configurable_test_state_changes(self):
|
||||
'''
|
||||
Test test.configurable_test_state with permutations of changes and with
|
||||
comment
|
||||
'''
|
||||
# Configure mock parameters
|
||||
mock_name = 'cheese_shop'
|
||||
mock_comment = "I'm afraid we're fresh out of Red Leicester sir."
|
||||
mock_changes = {
|
||||
'testing': {
|
||||
'old': 'Unchanged',
|
||||
'new': 'Something pretended to change'
|
||||
}
|
||||
}
|
||||
|
||||
# Test changes=Random and comment
|
||||
with patch.dict(test.__opts__, {'test': False}):
|
||||
ret = test.configurable_test_state(mock_name,
|
||||
changes='Random',
|
||||
comment=mock_comment)
|
||||
self.assertEqual(ret['name'], mock_name)
|
||||
self.assertIn(ret['changes'], [mock_changes, {}])
|
||||
self.assertEqual(ret['result'], True)
|
||||
self.assertEqual(ret['comment'], mock_comment)
|
||||
|
||||
# Test changes=True and comment
|
||||
with patch.dict(test.__opts__, {'test': False}):
|
||||
mock_ret = {'name': mock_name,
|
||||
'changes': mock_changes,
|
||||
'result': True,
|
||||
'comment': mock_comment}
|
||||
ret = test.configurable_test_state(mock_name,
|
||||
changes=True,
|
||||
comment=mock_comment)
|
||||
self.assertDictEqual(ret, mock_ret)
|
||||
|
||||
# Test changes=False and comment
|
||||
with patch.dict(test.__opts__, {'test': False}):
|
||||
mock_ret = {'name': mock_name,
|
||||
'changes': {},
|
||||
'result': True,
|
||||
'comment': mock_comment}
|
||||
ret = test.configurable_test_state(mock_name,
|
||||
changes=False,
|
||||
comment=mock_comment)
|
||||
self.assertDictEqual(ret, mock_ret)
|
||||
|
||||
# Test changes=Cheese
|
||||
with patch.dict(test.__opts__, {'test': False}):
|
||||
self.assertRaises(SaltInvocationError,
|
||||
test.configurable_test_state,
|
||||
mock_name,
|
||||
changes='Cheese')
|
||||
|
||||
def test_configurable_test_state_result(self):
|
||||
'''
|
||||
Test test.configurable_test_state with permutations of result and with
|
||||
comment
|
||||
'''
|
||||
# Configure mock parameters
|
||||
mock_name = 'cheese_shop'
|
||||
mock_comment = "I'm afraid we're fresh out of Red Leicester sir."
|
||||
mock_changes = {
|
||||
'testing': {
|
||||
'old': 'Unchanged',
|
||||
'new': 'Something pretended to change'
|
||||
}
|
||||
}
|
||||
|
||||
# Test result=Random and comment
|
||||
with patch.dict(test.__opts__, {'test': False}):
|
||||
ret = test.configurable_test_state(mock_name,
|
||||
result='Random',
|
||||
comment=mock_comment)
|
||||
self.assertEqual(ret['name'], mock_name)
|
||||
self.assertEqual(ret['changes'], mock_changes)
|
||||
self.assertIn(ret['result'], [True, False])
|
||||
self.assertEqual(ret['comment'], mock_comment)
|
||||
|
||||
# Test result=True and comment
|
||||
with patch.dict(test.__opts__, {'test': False}):
|
||||
mock_ret = {'name': mock_name,
|
||||
'changes': mock_changes,
|
||||
'result': True,
|
||||
'comment': mock_comment}
|
||||
ret = test.configurable_test_state(mock_name,
|
||||
result=True,
|
||||
comment=mock_comment)
|
||||
self.assertDictEqual(ret, mock_ret)
|
||||
|
||||
# Test result=False and comment
|
||||
with patch.dict(test.__opts__, {'test': False}):
|
||||
mock_ret = {'name': mock_name,
|
||||
'changes': mock_changes,
|
||||
'result': False,
|
||||
'comment': mock_comment}
|
||||
ret = test.configurable_test_state(mock_name,
|
||||
result=False,
|
||||
comment=mock_comment)
|
||||
self.assertDictEqual(ret, mock_ret)
|
||||
|
||||
# Test result=Cheese
|
||||
with patch.dict(test.__opts__, {'test': False}):
|
||||
self.assertRaises(SaltInvocationError,
|
||||
test.configurable_test_state,
|
||||
mock_name,
|
||||
result='Cheese')
|
||||
|
||||
def test_configurable_test_state_test(self):
|
||||
'''
|
||||
Test test.configurable_test_state with test=True with and without
|
||||
comment
|
||||
'''
|
||||
# Configure mock parameters
|
||||
mock_name = 'cheese_shop'
|
||||
mock_comment = "I'm afraid we're fresh out of Red Leicester sir."
|
||||
mock_changes = {
|
||||
'testing': {
|
||||
'old': 'Unchanged',
|
||||
'new': 'Something pretended to change'
|
||||
}
|
||||
}
|
||||
|
||||
# Test test=True without comment
|
||||
with patch.dict(test.__opts__, {'test': True}):
|
||||
mock_ret = {'name': mock_name,
|
||||
'changes': mock_changes,
|
||||
'result': None,
|
||||
'comment': 'This is a test'}
|
||||
ret = test.configurable_test_state(mock_name)
|
||||
self.assertDictEqual(ret, mock_ret)
|
||||
|
||||
# Test test=True with comment
|
||||
with patch.dict(test.__opts__, {'test': True}):
|
||||
mock_ret = {'name': mock_name,
|
||||
'changes': mock_changes,
|
||||
'result': None,
|
||||
'comment': mock_comment}
|
||||
ret = test.configurable_test_state(mock_name,
|
||||
comment=mock_comment)
|
||||
self.assertDictEqual(ret, mock_ret)
|
||||
|
||||
# Test test=True and changes=True with comment
|
||||
with patch.dict(test.__opts__, {'test': True}):
|
||||
mock_ret = {'name': mock_name,
|
||||
'changes': mock_changes,
|
||||
'result': None,
|
||||
'comment': mock_comment}
|
||||
ret = test.configurable_test_state(mock_name,
|
||||
changes=True,
|
||||
comment=mock_comment)
|
||||
self.assertDictEqual(ret, mock_ret)
|
||||
|
||||
# Test test=True and changes=False with comment
|
||||
with patch.dict(test.__opts__, {'test': True}):
|
||||
mock_ret = {'name': mock_name,
|
||||
'changes': {},
|
||||
'result': True,
|
||||
'comment': mock_comment}
|
||||
ret = test.configurable_test_state(mock_name,
|
||||
changes=False,
|
||||
comment=mock_comment)
|
||||
self.assertDictEqual(ret, mock_ret)
|
||||
|
||||
def test_mod_watch(self):
|
||||
'''
|
||||
|
|
Loading…
Add table
Reference in a new issue