コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
    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))
コード例 #4
0
    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))
コード例 #5
0
    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))
コード例 #6
0
    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))
コード例 #7
0
    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)
コード例 #8
0
    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)