def setUp(self): self.execution_info = external_model.ExecutionInfo() self.config = script_configs.Config() test_utils.setup() super().setUp()
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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, [])
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)
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)
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)
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, [])
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)
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)
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'])
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'])
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'])
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'])
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'])
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, [])
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])
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'])
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)
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', '******'])
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)