Merge "Added tests for checking of handling AssertionErrors"

This commit is contained in:
Jenkins 2015-06-18 03:41:26 +00:00 committed by Gerrit Code Review
commit a8a3119de5
3 changed files with 57 additions and 0 deletions

View File

@ -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')

View File

@ -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 = [

View File

@ -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 = [