Beispiel #1
0
 def test_default_override(self):
     p = parameters.Parameter('defaulted', {
         'Type': 'String',
         'Default': 'blarg'
     }, 'wibble')
     self.assertTrue(p.has_default())
     self.assertEqual(p.default(), 'blarg')
     self.assertEqual(p.value(), 'wibble')
    def _pseudo_parameters(self, stack_identifier):
        stack_id = getattr(stack_identifier, 'stack_id', '')
        stack_name = getattr(stack_identifier, 'stack_name', '')
        tenant = getattr(stack_identifier, 'tenant', '')

        yield parameters.Parameter(
            self.PARAM_STACK_ID,
            parameters.Schema(parameters.Schema.STRING, _('Stack ID'),
                              default=str(stack_id)))
        yield parameters.Parameter(
            self.PARAM_PROJECT_ID,
            parameters.Schema(parameters.Schema.STRING, _('Project ID'),
                              default=str(tenant)))
        if stack_name:
            yield parameters.Parameter(
                self.PARAM_STACK_NAME,
                parameters.Schema(parameters.Schema.STRING, _('Stack Name'),
                                  default=stack_name))
Beispiel #3
0
def new_parameter(name, schema, value=None, validate_value=True):
    tmpl = template.Template({
        'HeatTemplateFormatVersion': '2012-12-12',
        'Parameters': {
            name: schema
        }
    })
    schema = tmpl.param_schemata()[name]
    param = parameters.Parameter(name, schema, value)
    param.validate(validate_value)
    return param
Beispiel #4
0
 def test_string_pattern_bad_suffix(self):
     schema = {'Type': 'String',
               'ConstraintDescription': 'wibble',
               'AllowedPattern': '[a-z]*'}
     try:
         parameters.Parameter('p', schema, 'foo1')
     except ValueError as ve:
         msg = str(ve)
         self.assertNotEqual(msg.find('wibble'), -1)
     else:
         self.fail('ValueError not raised')
Beispiel #5
0
 def test_string_overflow(self):
     schema = {'Type': 'String',
               'ConstraintDescription': 'wibble',
               'MaxLength': '2'}
     try:
         parameters.Parameter('p', schema, 'foo')
     except ValueError as ve:
         msg = str(ve)
         self.assertNotEqual(msg.find('wibble'), -1)
     else:
         self.fail('ValueError not raised')
Beispiel #6
0
 def test_list_value_list_bad(self):
     schema = {'Type': 'CommaDelimitedList',
               'ConstraintDescription': 'wibble',
               'AllowedValues': ['foo', 'bar', 'baz']}
     try:
         parameters.Parameter('p', schema, 'foo,baz,blarg')
     except ValueError as ve:
         msg = str(ve)
         self.assertNotEqual(msg.find('wibble'), -1)
     else:
         self.fail('ValueError not raised')
Beispiel #7
0
 def test_number_value_list_bad(self):
     schema = {'Type': 'Number',
               'ConstraintDescription': 'wibble',
               'AllowedValues': ['1', '3', '5']}
     try:
         parameters.Parameter('p', schema, '2')
     except ValueError as ve:
         msg = str(ve)
         self.assertNotEqual(msg.find('wibble'), -1)
     else:
         self.fail('ValueError not raised')
Beispiel #8
0
 def test_number_high(self):
     schema = {'Type': 'Number',
               'ConstraintDescription': 'wibble',
               'MaxValue': '2'}
     try:
         parameters.Parameter('p', schema, '3')
     except ValueError as ve:
         msg = str(ve)
         self.assertNotEqual(msg.find('wibble'), -1)
     else:
         self.fail('ValueError not raised')
Beispiel #9
0
 def test_default_invalid(self):
     schema = {'Type': 'String',
               'AllowedValues': ['foo'],
               'ConstraintDescription': 'wibble',
               'Default': 'bar'}
     try:
         parameters.Parameter('p', schema, 'foo')
     except ValueError as ve:
         msg = str(ve)
         self.assertNotEqual(msg.find('wibble'), -1)
     else:
         self.fail('ValueError not raised')
Beispiel #10
0
    def get_default_parameters(self):
        """Return a dict of default parameters as parameter objects.

        Useful when the default value of the parameters are required to
        be type checked.
        """
        default_params = {}
        for name, schema in self.param_schemata().items():
            if schema.default:
                default_params[name] = parameters.Parameter(
                    name, schema, schema.default)
        return default_params
Beispiel #11
0
 def test_new_string(self):
     p = parameters.Parameter('p', {'Type': 'String'})
     self.assertTrue(isinstance(p, parameters.StringParam))
Beispiel #12
0
 def test_list_value_list_good(self):
     schema = {'Type': 'CommaDelimitedList',
               'AllowedValues': ['foo', 'bar', 'baz']}
     p = parameters.Parameter('p', schema, 'baz,foo,bar')
     self.assertEqual(p.value(), 'baz,foo,bar')
Beispiel #13
0
 def test_number_value_list_good(self):
     schema = {'Type': 'Number',
               'AllowedValues': ['1', '3', '5']}
     p = parameters.Parameter('p', schema, '5')
     self.assertEqual(p.value(), '5')
Beispiel #14
0
 def new_parameter(self, name, schema, value=None, validate_value=True):
     tmpl = template.Template({template.PARAMETERS: {name: schema}})
     schema = tmpl.param_schemata()[name]
     return parameters.Parameter(name, schema, value, validate_value)
Beispiel #15
0
 def test_new_number(self):
     p = parameters.Parameter('p', {'Type': 'Number'})
     self.assertTrue(isinstance(p, parameters.NumberParam))
Beispiel #16
0
 def test_string_pattern_good(self):
     schema = {'Type': 'String',
               'AllowedPattern': '[a-z]*'}
     p = parameters.Parameter('p', schema, 'foo')
     self.assertEqual(p.value(), 'foo')
Beispiel #17
0
 def test_string_len_good(self):
     schema = {'Type': 'String',
               'MinLength': '3',
               'MaxLength': '3'}
     p = parameters.Parameter('p', schema, 'foo')
     self.assertEqual(p.value(), 'foo')
Beispiel #18
0
 def test_no_description(self):
     p = parameters.Parameter('p', {'Type': 'String'})
     self.assertEqual(p.description(), '')
Beispiel #19
0
 def test_new_list(self):
     p = parameters.Parameter('p', {'Type': 'CommaDelimitedList'})
     self.assertTrue(isinstance(p, parameters.CommaDelimitedListParam))
Beispiel #20
0
 def test_string_value_list_good(self):
     schema = {'Type': 'String',
               'AllowedValues': ['foo', 'bar', 'baz']}
     p = parameters.Parameter('p', schema, 'bar')
     self.assertEqual(p.value(), 'bar')
Beispiel #21
0
 def test_description(self):
     description = 'Description of the parameter'
     p = parameters.Parameter('p', {'Type': 'String',
                                    'Description': description})
     self.assertEqual(p.description(), description)
Beispiel #22
0
 def test_number_float_good(self):
     schema = {'Type': 'Number',
               'MinValue': '3.0',
               'MaxValue': '3.0'}
     p = parameters.Parameter('p', schema, '3.0')
     self.assertEqual(p.value(), '3.0')