def test_schema_invariance(self): params1 = parameters.Parameters('test', params_schema, {'Defaulted': 'wibble'}) self.assertEqual(params1['Defaulted'], 'wibble') params2 = parameters.Parameters('test', params_schema) self.assertEqual(params2['Defaulted'], 'foobar')
def test_param_ref_missing(self): tmpl = {'Parameters': {'foo': {'Type': 'String', 'Required': True}}} params = parameters.Parameters('test', tmpl) snippet = {"Ref": "foo"} self.assertRaises(exception.UserParameterMissing, parser.Template.resolve_param_refs, snippet, params)
def test_pseudo_param_stackid(self): params = parameters.Parameters('test_stack', {'Parameters': {}}, stack_id='123::foo') self.assertEqual(params['AWS::StackId'], '123::foo') params.set_stack_id('456::bar') self.assertEqual(params['AWS::StackId'], '456::bar')
def test_map_str(self): template = { 'Parameters': { 'Foo': { 'Type': 'String' }, 'Bar': { 'Type': 'Number' } } } params = parameters.Parameters('test_params', template, { 'Foo': 'foo', 'Bar': 42 }) expected = { 'Foo': 'foo', 'Bar': '42', 'AWS::Region': 'ap-southeast-1', 'AWS::StackId': 'None', 'AWS::StackName': 'test_params' } self.assertEqual(params.map(str), expected)
def test_param_ref_missing(self): env = environment.Environment({'foo': 'bar'}) tmpl = template.Template(parameter_template, env=env) stk = stack.Stack(self.ctx, 'test', tmpl) tmpl.env = environment.Environment({}) stk.parameters = parameters.Parameters(stk.identifier(), tmpl) snippet = {"Ref": "foo"} self.assertRaises(exception.UserParameterMissing, self.resolve, snippet, tmpl, stk)
def new_parameters(self, stack_name, tmpl, user_params={}, stack_id=None, validate_value=True): tmpl = template.Template(tmpl) return parameters.Parameters(stack_name, tmpl, user_params, stack_id, validate_value)
def test_to_dict(self): template = {'Parameters': {'Foo': {'Type': 'String'}, 'Bar': {'Type': 'Number', 'Default': '42'}}} params = parameters.Parameters('test_params', template, {'Foo': 'foo'}) as_dict = dict(params) self.assertEqual(as_dict['Foo'], 'foo') self.assertEqual(as_dict['Bar'], '42') self.assertEqual(as_dict['AWS::StackName'], 'test_params') self.assertTrue('AWS::Region' in as_dict)
def parameters(self, stack_identifier, user_params, validate_value=True, context=None): return parameters.Parameters(stack_identifier, self, user_params=user_params, validate_value=validate_value, context=context)
def test_format_validate_parameter(self): """Test format of a parameter.""" t = template_format.parse(self.template % self.param) tmpl = template.Template(t) tmpl_params = parameters.Parameters(None, tmpl) tmpl_params.validate(validate_value=False) param = tmpl_params.params[self.param_name] param_formated = api.format_validate_parameter(param) self.assertEqual(self.expected, param_formated)
def test_map(self): template = {'Parameters': {'Foo': {'Type': 'String'}, 'Bar': {'Type': 'Number', 'Default': '42'}}} params = parameters.Parameters('test_params', template, {'Foo': 'foo'}) expected = {'Foo': False, 'Bar': True, 'AWS::Region': True, 'AWS::StackId': True, 'AWS::StackName': True} self.assertEqual(params.map(lambda p: p.has_default()), expected)
def test_user_param_nonexist(self): params = parameters.Parameters('test', params_schema) self.assertEqual(params.user_parameters(), {})
def test_user_param(self): user_params = {'User': '******'} params = parameters.Parameters('test', params_schema, user_params) self.assertEqual(params.user_parameters(), user_params)
def test_pseudo_params(self): params = parameters.Parameters('test_stack', {"Parameters": {}}) self.assertEqual(params['AWS::StackName'], 'test_stack') self.assertEqual(params['AWS::StackId'], 'None') self.assertTrue('AWS::Region' in params)
def parameters(self, stack_identifier, user_params, param_defaults=None): return parameters.Parameters(stack_identifier, self, user_params=user_params, param_defaults=param_defaults)
def parameters(self, stack_identifier, user_params): return parameters.Parameters(stack_identifier, self, user_params=user_params)
def run_parameters(value): parameters.Parameters("stack_testit", tmpl, {'db_name': value}) return True