Merge "Added tests for checking of handling AssertionErrors"
This commit is contained in:
commit
a8a3119de5
@ -2927,6 +2927,14 @@ class StackServiceTest(common.HeatTestCase):
|
||||
self.eng._validate_new_stack,
|
||||
self.ctx, 'test_existing_stack', parsed_template)
|
||||
|
||||
def test_validate_new_stack_handle_assertion_error(self):
|
||||
tmpl = mock.MagicMock()
|
||||
expected_message = 'Expected assertion error'
|
||||
tmpl.validate.side_effect = AssertionError(expected_message)
|
||||
exc = self.assertRaises(AssertionError, self.eng._validate_new_stack,
|
||||
self.ctx, 'stack_name', tmpl)
|
||||
self.assertEqual(expected_message, six.text_type(exc))
|
||||
|
||||
@mock.patch('heat.engine.service.ThreadGroupManager',
|
||||
return_value=mock.Mock())
|
||||
@mock.patch.object(stack_object.Stack, 'get_all')
|
||||
|
@ -2122,6 +2122,39 @@ class StackTest(common.HeatTestCase):
|
||||
self.assertIsNone(tmpl_stack.prev_raw_template_id)
|
||||
self.assertFalse(mock_store.called)
|
||||
|
||||
def test_validate_assertion_exception_rethrow(self):
|
||||
expected_msg = 'Expected Assertion Error'
|
||||
with mock.patch('heat.engine.stack.dependencies',
|
||||
new_callable=mock.PropertyMock) as mock_dependencies:
|
||||
mock_dependency = mock.MagicMock()
|
||||
mock_dependency.validate.side_effect = AssertionError(expected_msg)
|
||||
mock_dependencies.Dependencies.return_value = [mock_dependency]
|
||||
stc = stack.Stack(self.ctx, utils.random_name(), self.tmpl)
|
||||
expected_exception = self.assertRaises(AssertionError,
|
||||
stc.validate)
|
||||
self.assertEqual(expected_msg, six.text_type(expected_exception))
|
||||
mock_dependency.validate.assert_called_once_with()
|
||||
|
||||
stc = stack.Stack(self.ctx, utils.random_name(), self.tmpl)
|
||||
output_value = mock.MagicMock()
|
||||
output_value.get.side_effect = AssertionError(expected_msg)
|
||||
stc.outputs = {'foo': output_value}
|
||||
expected_exception = self.assertRaises(AssertionError, stc.validate)
|
||||
self.assertEqual(expected_msg, six.text_type(expected_exception))
|
||||
output_value.get.assert_called_once_with('Value')
|
||||
|
||||
def test_resolve_static_data_assertion_exception_rethrow(self):
|
||||
tmpl = mock.MagicMock()
|
||||
expected_message = 'Expected Assertion Error'
|
||||
tmpl.parse.side_effect = AssertionError(expected_message)
|
||||
|
||||
stc = stack.Stack(self.ctx, utils.random_name(),
|
||||
tmpl, resolve_data=False)
|
||||
expected_exception = self.assertRaises(AssertionError,
|
||||
stc.resolve_static_data,
|
||||
None)
|
||||
self.assertEqual(expected_message, six.text_type(expected_exception))
|
||||
|
||||
|
||||
class StackKwargsForCloningTest(common.HeatTestCase):
|
||||
scenarios = [
|
||||
|
@ -645,6 +645,22 @@ class StackResourceAttrTest(StackResourceBaseTest):
|
||||
self.assertFalse(nested.strict_validate)
|
||||
self.m.VerifyAll()
|
||||
|
||||
def test_validate_assertion_exception_rethrow(self):
|
||||
expected_message = 'Expected Assertion Error'
|
||||
self.parent_resource.child_template = mock.Mock(return_value='foo')
|
||||
self.parent_resource.child_params = mock.Mock(return_value={})
|
||||
self.m.StubOutWithMock(stack_resource.StackResource,
|
||||
'_parse_nested_stack')
|
||||
name = '%s-%s' % (self.parent_stack.name, self.parent_resource.name)
|
||||
stack_resource.StackResource._parse_nested_stack(
|
||||
name, 'foo', {}).AndRaise(AssertionError(expected_message))
|
||||
|
||||
self.m.ReplayAll()
|
||||
exc = self.assertRaises(AssertionError,
|
||||
self.parent_resource.validate_nested_stack)
|
||||
self.assertEqual(expected_message, six.text_type(exc))
|
||||
self.m.VerifyAll()
|
||||
|
||||
|
||||
class StackResourceCheckCompleteTest(StackResourceBaseTest):
|
||||
scenarios = [
|
||||
|
Loading…
Reference in New Issue
Block a user