def test_deployment_prompt_alphabetical_order(self): # check that params are prompted for in alphabetical order when the file is loaded with preserve_order=False curr_dir = os.path.dirname(os.path.realpath(__file__)) template_path = os.path.join(curr_dir, 'param-validation-template.json').replace( '\\', '\\\\') parameters_path = os.path.join(curr_dir, 'param-validation-params.json').replace( '\\', '\\\\') parameters_with_reference_path = os.path.join( curr_dir, 'param-validation-ref-params.json').replace('\\', '\\\\') template = get_file_json(template_path, preserve_order=False) template_param_defs = template.get('parameters', {}) parameter_list = [[parameters_path], [parameters_with_reference_path]] result_parameters = _process_parameters(template_param_defs, parameter_list) missing_parameters = _find_missing_parameters(result_parameters, template) param_alpha_order = [ "[u'arrayParam', u'boolParam', u'enumParam', u'objectParam', u'secureParam']", "['arrayParam', 'boolParam', 'enumParam', 'objectParam', 'secureParam']" ] results = _prompt_for_parameters(dict(missing_parameters), fail_on_no_tty=False) self.assertTrue(str(list(results.keys())) in param_alpha_order)
def test_deployment_missing_values(self): curr_dir = os.path.dirname(os.path.realpath(__file__)) template_path = os.path.join(curr_dir, 'param-validation-template.json').replace( '\\', '\\\\') parameters_path = os.path.join(curr_dir, 'param-validation-params.json').replace( '\\', '\\\\') parameters_with_reference_path = os.path.join( curr_dir, 'param-validation-ref-params.json').replace('\\', '\\\\') template = get_file_json(template_path, preserve_order=True) template_param_defs = template.get('parameters', {}) parameter_list = [[parameters_path], [parameters_with_reference_path]] result_parameters = _process_parameters(template_param_defs, parameter_list) missing_parameters = _find_missing_parameters(result_parameters, template) # ensure that parameters with default values are not considered missing params_with_defaults = [ x for x in template_param_defs if 'defaultValue' in template_param_defs[x] ] for item in params_with_defaults: self.assertTrue(item not in missing_parameters) # ensure that a parameter that specifies a reference does not prompt self.assertTrue('secretReference' not in missing_parameters) self.assertTrue('secretReference' in result_parameters)
def test_find_missing_parameters_none(self): template = { "parameters": { "foo": { "defaultValue": "blah" }, "bar": {}, "baz": {}, } } missing = _find_missing_parameters(None, template) self.assertEqual(2, len(missing))
def test_find_missing_parameters(self): parameters = {"foo": "value1", "bar": "value2"} template = { "parameters": { "foo": { "defaultValue": "blah" }, "bar": {}, "baz": {}, } } missing = _find_missing_parameters(parameters, template) self.assertEqual(1, len(missing))
def test_find_missing_parameters(self): parameters = { "foo": "value1", "bar": "value2" } template = { "parameters": { "foo": { "defaultValue": "blah" }, "bar": {}, "baz": {}, } } missing = _find_missing_parameters(parameters, template) self.assertEqual(1, len(missing))
def test_deployment_prompt_alphabetical_order(self): # check that params are prompted for in alphabetical order when the file is loaded with preserve_order=False curr_dir = os.path.dirname(os.path.realpath(__file__)) template_path = os.path.join(curr_dir, 'param-validation-template.json').replace('\\', '\\\\') parameters_path = os.path.join(curr_dir, 'param-validation-params.json').replace('\\', '\\\\') parameters_with_reference_path = os.path.join(curr_dir, 'param-validation-ref-params.json').replace('\\', '\\\\') template = get_file_json(template_path, preserve_order=False) template_param_defs = template.get('parameters', {}) parameter_list = [[parameters_path], [parameters_with_reference_path]] result_parameters = _process_parameters(template_param_defs, parameter_list) missing_parameters = _find_missing_parameters(result_parameters, template) param_alpha_order = ["[u'arrayParam', u'boolParam', u'enumParam', u'objectParam', u'secureParam']", "['arrayParam', 'boolParam', 'enumParam', 'objectParam', 'secureParam']"] results = _prompt_for_parameters(dict(missing_parameters), fail_on_no_tty=False) self.assertTrue(str(list(results.keys())) in param_alpha_order)
def test_deployment_missing_values(self): curr_dir = os.path.dirname(os.path.realpath(__file__)) template_path = os.path.join(curr_dir, 'param-validation-template.json').replace('\\', '\\\\') parameters_path = os.path.join(curr_dir, 'param-validation-params.json').replace('\\', '\\\\') parameters_with_reference_path = os.path.join(curr_dir, 'param-validation-ref-params.json').replace('\\', '\\\\') template = get_file_json(template_path, preserve_order=True) template_param_defs = template.get('parameters', {}) parameter_list = [[parameters_path], [parameters_with_reference_path]] result_parameters = _process_parameters(template_param_defs, parameter_list) missing_parameters = _find_missing_parameters(result_parameters, template) # ensure that parameters with default values are not considered missing params_with_defaults = [x for x in template_param_defs if 'defaultValue' in template_param_defs[x]] for item in params_with_defaults: self.assertTrue(item not in missing_parameters) # ensure that a parameter that specifies a reference does not prompt self.assertTrue('secretReference' not in missing_parameters) self.assertTrue('secretReference' in result_parameters)