def test_int_parameter_when_lower_than_max(self): parameter = self.create_parameter('param') parameter.type = 'int' parameter.max = 100 error = model_helper.validate_parameter(parameter, {'param': 9}) self.assertIsNone(error)
def get_parameter_values(self, script_name, param_name, current_values, user): script_config = self._get_cached_config(script_name, user) if script_config is None: raise ConfigNotFoundException(script_name) found_parameter = None for parameter in script_config.parameters: if parameter.name == param_name: found_parameter = parameter break if found_parameter is None: raise ParameterNotFoundException(param_name, script_name) required_parameters = found_parameter.get_required_parameters() if not required_parameters: return found_parameter.get_values([]) for required_parameter_name in required_parameters: required_parameter = script_config.find_parameter(required_parameter_name) if required_parameter is None: raise Exception('Failed to find required parameter ' + required_parameter_name + ' for ' + script_name) validation_error = model_helper.validate_parameter(required_parameter, current_values) if validation_error is not None: raise InvalidValueException(param_name, validation_error, script_name) return found_parameter.get_values(current_values)
def test_required_parameter_when_constant(self): parameter = self.create_parameter('param') parameter.required = True parameter.constant = True error = model_helper.validate_parameter(parameter, {}) self.assertIsNone(error)
def test_required_flag_parameter_when_false_boolean(self): parameter = self.create_parameter('param') parameter.no_value = True parameter.required = True error = model_helper.validate_parameter(parameter, {'param': False}) self.assertIsNone(error)
def test_required_int_parameter_when_zero(self): parameter = self.create_parameter('param') parameter.type = 'int' parameter.required = True error = model_helper.validate_parameter(parameter, {'param': 0}) self.assertIsNone(error)
def test_int_parameter_when_large_negative_int_string(self): parameter = self.create_parameter('param') parameter.type = 'int' error = model_helper.validate_parameter( parameter, {'param': '-1234567890987654321'}) self.assertIsNone(error)
def test_int_parameter_when_larger_than_min(self): parameter = self.create_parameter('param') parameter.type = 'int' parameter.min = 100 error = model_helper.validate_parameter(parameter, {'param': 0}) self.assert_error(error)
def test_int_parameter_when_equal_to_min(self): parameter = self.create_parameter('param') parameter.type = 'int' parameter.min = -100 error = model_helper.validate_parameter(parameter, {'param': -100}) self.assertIsNone(error)
def test_file_upload_parameter_when_valid(self): parameter = self.create_parameter('param') parameter.type = 'file_upload' uploaded_file = test_utils.create_file('test.xml') error = model_helper.validate_parameter(parameter, {'param': uploaded_file}) self.assertIsNone(error)
def test_file_upload_parameter_when_not_exists(self): parameter = self.create_parameter('param') parameter.type = 'file_upload' uploaded_file = test_utils.create_file('test.xml') error = model_helper.validate_parameter(parameter, {'param': uploaded_file + '_'}) self.assert_error(error)
def test_list_parameter_when_matches(self): parameter = self.create_parameter('param') parameter.type = 'list' parameter.values_provider = ConstValuesProvider( ['val1', 'val2', 'val3']) error = model_helper.validate_parameter(parameter, {'param': 'val2'}) self.assertIsNone(error)
def test_multiselect_when_empty_list(self): parameter = self.create_parameter('param') parameter.type = 'multiselect' parameter.values_provider = ConstValuesProvider( ['val1', 'val2', 'val3']) error = model_helper.validate_parameter(parameter, {'param': []}) self.assertIsNone(error)
def test_multiselect_when_not_list_value(self): parameter = self.create_parameter('param') parameter.type = 'multiselect' parameter.values_provider = ConstValuesProvider( ['val1', 'val2', 'val3']) error = model_helper.validate_parameter(parameter, {'param': 'val1'}) self.assert_error(error)
def test_multiselect_when_single_not_matching_element(self): parameter = self.create_parameter('param') parameter.type = 'multiselect' parameter.values_provider = ConstValuesProvider( ['val1', 'val2', 'val3']) error = model_helper.validate_parameter(parameter, {'param': ['X']}) self.assert_error(error)
def test_list_with_dependency_when_not_matches(self): parameter = self.create_parameter('param') parameter.type = 'list' parameter.values_provider = _DependantScriptValuesProvider( ['dep_param']) error = model_helper.validate_parameter(parameter, { 'param': 'ZZZ', 'dep_param': 'value_A' }) self.assert_error(error)
def test_list_with_dependency_when_matches_multiple(self): parameter = self.create_parameter('param') parameter.type = 'list' parameter.values_provider = _DependantScriptValuesProvider( ['dp1', 'dp2', 'dp3']) error = model_helper.validate_parameter(parameter, { 'param': 'x_y_z_3', 'dp1': 'x', 'dp2': 'y', 'dp3': 'z' }) self.assertIsNone(error)
def test_required_parameter_when_empty(self): parameter = self.create_parameter('param') parameter.required = True error = model_helper.validate_parameter(parameter, {'param': ''}) self.assert_error(error)
def test_flag_parameter_when_true_bool(self): parameter = self.create_parameter('param') parameter.no_value = True error = model_helper.validate_parameter(parameter, {'param': True}) self.assertIsNone(error)
def test_flag_parameter_when_false_string(self): parameter = self.create_parameter('param') parameter.no_value = True error = model_helper.validate_parameter(parameter, {'param': 'false'}) self.assertIsNone(error)
def test_flag_parameter_when_some_string(self): parameter = self.create_parameter('param') parameter.no_value = True error = model_helper.validate_parameter(parameter, {'param': 'no'}) self.assert_error(error)
def test_int_parameter_when_negative_int(self): parameter = self.create_parameter('param') parameter.type = 'int' error = model_helper.validate_parameter(parameter, {'param': -100}) self.assertIsNone(error)
def test_int_parameter_when_zero_int_string(self): parameter = self.create_parameter('param') parameter.type = 'int' error = model_helper.validate_parameter(parameter, {'param': '0'}) self.assertIsNone(error)
def test_int_parameter_when_float_string(self): parameter = self.create_parameter('param') parameter.type = 'int' error = model_helper.validate_parameter(parameter, {'param': '1.0'}) self.assert_error(error)
def test_string_parameter_when_value(self): parameter = self.create_parameter('param') error = model_helper.validate_parameter(parameter, {'param': 'val'}) self.assertIsNone(error)
def test_required_parameter_when_value(self): parameter = self.create_parameter('param') parameter.required = True error = model_helper.validate_parameter(parameter, {'param': 'val'}) self.assertIsNone(error)