Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
    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)
Пример #5
0
    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)
Пример #6
0
    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)
Пример #7
0
    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)
Пример #8
0
    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)
Пример #9
0
    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)
Пример #10
0
    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)
Пример #11
0
    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)
Пример #12
0
    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)
Пример #13
0
    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)
Пример #14
0
    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)
Пример #15
0
    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)
Пример #16
0
    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)
Пример #17
0
    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)
Пример #18
0
    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)
Пример #19
0
    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)
Пример #20
0
    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)
Пример #21
0
    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)
Пример #22
0
    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)
Пример #23
0
    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)
Пример #24
0
    def test_string_parameter_when_value(self):
        parameter = self.create_parameter('param')

        error = model_helper.validate_parameter(parameter, {'param': 'val'})
        self.assertIsNone(error)
Пример #25
0
    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)