summaryrefslogtreecommitdiff
path: root/heat/tests/test_template.py
diff options
context:
space:
mode:
authorhuangtianhua <huangtianhua@huawei.com>2016-07-26 14:32:40 +0800
committerhuangtianhua <huangtianhua@huawei.com>2016-08-25 09:10:33 +0800
commit4552e08767a1ead02a888d19ef13b8f683b0e146 (patch)
tree6282de25222e6d2583fef7c1afd402975381edfb /heat/tests/test_template.py
parent74506411d5ea5c8fdd590b6d2fedad48426d074c (diff)
downloadheat-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.py27
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):