diff options
author | huangtianhua <huangtianhua@huawei.com> | 2016-07-26 14:32:40 +0800 |
---|---|---|
committer | huangtianhua <huangtianhua@huawei.com> | 2016-08-25 09:10:33 +0800 |
commit | 4552e08767a1ead02a888d19ef13b8f683b0e146 (patch) | |
tree | 6282de25222e6d2583fef7c1afd402975381edfb /heat/tests/test_template.py | |
parent | 74506411d5ea5c8fdd590b6d2fedad48426d074c (diff) | |
download | heat-4552e08767a1ead02a888d19ef13b8f683b0e146.tar.gz |
Support condition for output
Provides output condition for cfn/hot templates,
if the condition of output evaluates to false, will
set output value to None.
Change-Id: I0398e39541a4176ef5699331c10536c59f1cb3e7
Blueprint: support-conditions-function
Diffstat (limited to 'heat/tests/test_template.py')
-rw-r--r-- | heat/tests/test_template.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/heat/tests/test_template.py b/heat/tests/test_template.py index 9f61523b9..d6f12b680 100644 --- a/heat/tests/test_template.py +++ b/heat/tests/test_template.py @@ -299,6 +299,12 @@ class TestTemplateConditionParser(common.HeatTestCase): 'type': 'GenericResourceType', 'condition': 'prod_env' } + }, + 'outputs': { + 'foo': { + 'condition': 'prod_env', + 'value': {'get_attr': ['r1', 'foo']} + } } } @@ -381,6 +387,27 @@ class TestTemplateConditionParser(common.HeatTestCase): self.assertIn('Invalid condition "111" (in r1.condition)', six.text_type(ex)) + def test_parse_output_condition_invalid(self): + stk = stack.Stack(self.ctx, + 'test_output_invalid_condition', + self.tmpl) + + # test condition name is invalid + stk.outputs['foo']['condition'] = 'invalid_cd' + ex = self.assertRaises(exception.InvalidConditionReference, + self.tmpl.parse_outputs_conditions, + stk.outputs, stk) + self.assertIn('Invalid condition "invalid_cd" ' + '(in outputs.foo.condition)', + six.text_type(ex)) + # test condition name is not string + stk.outputs['foo']['condition'] = 222 + ex = self.assertRaises(exception.InvalidConditionReference, + self.tmpl.parse_outputs_conditions, + stk.outputs, stk) + self.assertIn('Invalid condition "222" (in outputs.foo.condition)', + six.text_type(ex)) + class TestTemplateValidate(common.HeatTestCase): |