예제 #1
0
    def setUp(self):
        self.execution_info = external_model.ExecutionInfo()
        self.config = script_configs.Config()

        test_utils.setup()

        super().setUp()
예제 #2
0
    def test_string_parameter_when_value(self):
        script_config = script_configs.Config()
        self.add_parameter('param', script_config)

        valid = model_helper.validate_parameters({'param': 'val'},
                                                 script_config)
        self.assertTrue(valid)
예제 #3
0
    def test_int_parameter_when_large_negative_int_string(self):
        script_config = script_configs.Config()

        parameter = self.add_parameter('param', script_config)
        parameter.type = 'int'

        valid = model_helper.validate_parameters({'param': '-1234567890987654321'}, script_config)
        self.assertTrue(valid)
예제 #4
0
    def test_int_parameter_when_negative_int(self):
        script_config = script_configs.Config()

        parameter = self.add_parameter('param', script_config)
        parameter.type = 'int'

        valid = model_helper.validate_parameters({'param': -100}, script_config)
        self.assertTrue(valid)
예제 #5
0
    def test_flag_parameter_when_some_string(self):
        script_config = script_configs.Config()

        parameter = self.add_parameter('param', script_config)
        parameter.no_value = True

        valid = model_helper.validate_parameters({'param': 'no'}, script_config)
        self.assertFalse(valid)
예제 #6
0
    def test_flag_parameter_when_false_bool(self):
        script_config = script_configs.Config()

        parameter = self.add_parameter('param', script_config)
        parameter.no_value = True

        valid = model_helper.validate_parameters({'param': False}, script_config)
        self.assertTrue(valid)
예제 #7
0
    def test_int_parameter_when_float_string(self):
        script_config = script_configs.Config()

        parameter = self.add_parameter('param', script_config)
        parameter.type = 'int'

        valid = model_helper.validate_parameters({'param': '1.0'}, script_config)
        self.assertFalse(valid)
예제 #8
0
    def test_required_parameter_when_none(self):
        script_config = script_configs.Config()

        parameter = self.add_parameter('param', script_config)
        parameter.required = True

        valid = model_helper.validate_parameters({}, script_config)
        self.assertFalse(valid)
예제 #9
0
    def test_multiple_parameters_when_all_missing(self):
        script_config = script_configs.Config()

        for i in range(0, 5):
            self.add_parameter('param' + str(i), script_config)

        valid = model_helper.validate_parameters({}, script_config)
        self.assertTrue(valid)
예제 #10
0
    def test_int_parameter_when_equal_to_min(self):
        script_config = script_configs.Config()

        parameter = self.add_parameter('param', script_config)
        parameter.type = 'int'
        parameter.min = -100

        valid = model_helper.validate_parameters({'param': -100}, script_config)
        self.assertTrue(valid)
예제 #11
0
    def test_required_flag_parameter_when_true_boolean(self):
        script_config = script_configs.Config()

        parameter = self.add_parameter('param', script_config)
        parameter.no_value = True
        parameter.required = True

        valid = model_helper.validate_parameters({'param': True}, script_config)
        self.assertTrue(valid)
예제 #12
0
    def test_list_parameter_when_not_matches(self):
        script_config = script_configs.Config()

        parameter = self.add_parameter('param', script_config)
        parameter.type = 'list'
        parameter.values = ['val1', 'val2', 'val3']

        valid = model_helper.validate_parameters({'param': 'val4'}, script_config)
        self.assertFalse(valid)
예제 #13
0
    def test_one_parameter_no_values(self):
        config = script_configs.Config()

        parameter = script_configs.Parameter()
        config.add_parameter(parameter)

        args_string = executor.build_command_args({}, config)

        self.assertEqual(args_string, [])
예제 #14
0
    def test_file_upload_parameter_when_not_exists(self):
        script_config = script_configs.Config()

        parameter = self.add_parameter('param', script_config)
        parameter.type = 'file_upload'

        uploaded_file = test_utils.create_file('test.xml')
        valid = model_helper.validate_parameters({'param': uploaded_file + '_'}, script_config)
        self.assertFalse(valid)
예제 #15
0
    def test_required_int_parameter_when_zero(self):
        script_config = script_configs.Config()

        parameter = self.add_parameter('param', script_config)
        parameter.type = 'int'
        parameter.required = True

        valid = model_helper.validate_parameters({'param': 0}, script_config)
        self.assertTrue(valid)
예제 #16
0
    def test_int_parameter_when_larger_than_min(self):
        script_config = script_configs.Config()

        parameter = self.add_parameter('param', script_config)
        parameter.type = 'int'
        parameter.min = 100

        valid = model_helper.validate_parameters({'param': 0}, script_config)
        self.assertFalse(valid)
예제 #17
0
    def test_no_parameters_some_values(self):
        config = script_configs.Config()

        args_string = server.build_command_args({
            'p1': 'value',
            'p2': 'value'
        }, config)

        self.assertEqual(args_string, [])
예제 #18
0
    def test_int_parameter_when_lower_than_max(self):
        script_config = script_configs.Config()

        parameter = self.add_parameter('param', script_config)
        parameter.type = 'int'
        parameter.max = 100

        valid = model_helper.validate_parameters({'param': 9}, script_config)
        self.assertTrue(valid)
예제 #19
0
    def test_multiple_parameters_when_all_defined(self):
        script_config = script_configs.Config()

        values = {}
        for i in range(0, 5):
            parameter = self.add_parameter('param' + str(i), script_config)
            values[parameter.name] = str(i)

        valid = model_helper.validate_parameters(values, script_config)
        self.assertTrue(valid)
예제 #20
0
    def test_one_parameter_one_value(self):
        config = script_configs.Config()

        parameter = script_configs.Parameter()
        parameter.name = 'p1'
        config.add_parameter(parameter)

        args_string = executor.build_command_args({'p1': 'value'}, config)

        self.assertEqual(args_string, ['value'])
예제 #21
0
    def test_one_parameter_with_param(self):
        config = script_configs.Config()

        parameter = script_configs.Parameter()
        parameter.name = 'p1'
        parameter.param = '-p1'
        config.add_parameter(parameter)

        args_string = server.build_command_args({'p1': 'value'}, config)

        self.assertEqual(args_string, ['-p1', 'value'])
예제 #22
0
    def test_one_parameter_flag_true(self):
        config = script_configs.Config()

        parameter = script_configs.Parameter()
        parameter.name = 'p1'
        parameter.param = '--flag'
        parameter.no_value = True
        config.add_parameter(parameter)

        args_string = executor.build_command_args({'p1': True}, config)

        self.assertEqual(args_string, ['--flag'])
예제 #23
0
    def test_parameter_multiselect_when_multiple_list(self):
        config = script_configs.Config()

        parameter = script_configs.Parameter()
        parameter.name = 'p1'
        parameter.type = 'multiselect'
        config.add_parameter(parameter)

        args_list = executor.build_command_args(
            {'p1': ['val1', 'val2', 'hello world']}, config)

        self.assertEqual(args_list, ['val1,val2,hello world'])
예제 #24
0
    def test_parameter_multiselect_when_single_list_as_multiarg(self):
        config = script_configs.Config()

        parameter = script_configs.Parameter()
        parameter.name = 'p1'
        parameter.param = '-p1'
        parameter.type = 'multiselect'
        config.add_parameter(parameter)

        args_list = executor.build_command_args({'p1': ['val1']}, config)

        self.assertEqual(args_list, ['-p1', 'val1'])
예제 #25
0
    def test_parameter_multiselect_when_empty_list(self):
        config = script_configs.Config()

        parameter = script_configs.Parameter()
        parameter.name = 'p1'
        parameter.param = '-p1'
        parameter.type = 'multiselect'
        config.add_parameter(parameter)

        args_list = executor.build_command_args({'p1': []}, config)

        self.assertEqual(args_list, [])
예제 #26
0
    def test_parameter_int(self):
        config = script_configs.Config()

        parameter = script_configs.Parameter()
        parameter.name = 'p1'
        parameter.param = '-p1'
        parameter.type = 'int'
        config.add_parameter(parameter)

        args_string = executor.build_command_args({'p1': 5}, config)

        self.assertEqual(args_string, ['-p1', 5])
예제 #27
0
    def test_parameter_constant(self):
        config = script_configs.Config()

        parameter = script_configs.Parameter()
        parameter.name = 'p1'
        parameter.constant = True
        parameter.default = 'const'
        config.add_parameter(parameter)

        args_string = executor.build_command_args({'p1': 'value'}, config)

        self.assertEqual(args_string, ['const'])
예제 #28
0
    def test_multiple_required_parameters_when_one_missing(self):
        script_config = script_configs.Config()

        values = {}
        for i in range(0, 5):
            parameter = self.add_parameter('param' + str(i), script_config)
            parameter.required = True

            if i != 4:
                values[parameter.name] = str(i)

        valid = model_helper.validate_parameters(values, script_config)
        self.assertFalse(valid)
예제 #29
0
    def test_parameter_secure_some_value(self):
        config = script_configs.Config()

        parameter = script_configs.Parameter()
        parameter.name = 'p1'
        parameter.param = '-p1'
        parameter.secure = True
        config.add_parameter(parameter)

        args_string = server.build_command_args({'p1': 'value'}, config,
                                                model_helper.value_to_str)

        self.assertEqual(args_string, ['-p1', '******'])
예제 #30
0
    def test_parameter_secure_some_value(self):
        config = script_configs.Config()
        config.script_command = 'ls'

        parameter = script_configs.Parameter()
        parameter.name = 'p1'
        parameter.param = '-p1'
        parameter.secure = True
        config.add_parameter(parameter)

        executor = ScriptExecutor(config, {'p1': 'value'})
        secure_command = executor.get_secure_command()

        self.assertEqual('ls -p1 ******', secure_command)