Added logic to validate the default values from the templates.
Incorporated the review comments and added unit testcase for the newly added method. Co-Authored-By: Sahdev Zala <spzala@us.ibm.com> Related-bug: #1567552 Change-Id: I41f574a353495f25957b9b25ce6368fe6e92dbc2
This commit is contained in:
parent
9fd69f2bed
commit
e55f28458c
@ -53,7 +53,7 @@ class Input(object):
|
||||
def validate(self, value=None):
|
||||
self._validate_field()
|
||||
self.validate_type(self.type)
|
||||
if value:
|
||||
if value is not None:
|
||||
self._validate_value(value)
|
||||
|
||||
def _validate_field(self):
|
||||
|
12
toscaparser/tests/data/test_invalid_input_defaults.yaml
Normal file
12
toscaparser/tests/data/test_invalid_input_defaults.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
tosca_definitions_version: tosca_simple_yaml_1_0
|
||||
|
||||
description: Test template with default not matching required type.
|
||||
|
||||
topology_template:
|
||||
inputs:
|
||||
invalid_default:
|
||||
type: integer
|
||||
default: two
|
||||
valid_default:
|
||||
type: integer
|
||||
default: 2
|
@ -1385,3 +1385,11 @@ heat-translator/master/translator/tests/data/custom_types/wordpress.yaml
|
||||
os.path.dirname(os.path.abspath(__file__)),
|
||||
"data/test_credential_datatype.yaml")
|
||||
self.assertIsNotNone(ToscaTemplate(tosca_tpl))
|
||||
|
||||
def test_invalid_default_value(self):
|
||||
tpl_path = os.path.join(
|
||||
os.path.dirname(os.path.abspath(__file__)),
|
||||
"data/test_invalid_input_defaults.yaml")
|
||||
self.assertRaises(exception.ValidationError, ToscaTemplate, tpl_path)
|
||||
exception.ExceptionCollector.assertExceptionMessage(
|
||||
ValueError, _('"two" is not an integer.'))
|
||||
|
@ -65,6 +65,10 @@ class TopologyTemplate(object):
|
||||
input = Input(name, attrs)
|
||||
if self.parsed_params and name in self.parsed_params:
|
||||
input.validate(self.parsed_params[name])
|
||||
else:
|
||||
default = input.default
|
||||
if default:
|
||||
input.validate(default)
|
||||
inputs.append(input)
|
||||
return inputs
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user