コード例 #1
0
 def test_errors_can_generate_list_of_errors_from_error_dict(self):
     e = InvalidDataError('a message',
                          42,
                          error_dict={
                              'foo': 42,
                              'bar': 21
                          })
     assert_equals(set((42, 21)), set(e.errors()))
コード例 #2
0
    def test_can_not_set_error_dict_and_error_list(self):
        InvalidDataError('a message', 42, error_dict={}, error_list=['foo'])
        InvalidDataError('a message',
                         42,
                         error_dict={'foo': 'bar'},
                         error_list=[])

        with assert_raises(InvalidArgumentsError):
            InvalidDataError('a message',
                             42,
                             error_dict={'foo': 'bar'},
                             error_list=['foo'])
コード例 #3
0
 def _error(self,
            message='a message',
            value=42,
            error_dict=None,
            error_list=None):
     return InvalidDataError(message,
                             value,
                             error_dict=error_dict,
                             error_list=error_list)
コード例 #4
0
 def convert(self, fields, context):
     if exception_if_invalid:
         assert (error_fields is None), 'specific fields not supported'
         raise InvalidDataError('foo', fields, 'key', context)
     if not error_fields:
         result = context['result']
         error = Error('key', 'msg for global error', fields, context)
         result.global_errors = result.global_errors + (error,)
     else:
         result = context['result']
         value = None
         for fieldname in error_fields:
             error = Error('key', 'error for %s', value, context)
             result.children[fieldname].add_error(error)
     return fields
コード例 #5
0
    def handle_validator_result(self, converted_value, result, context, errors=None, nr_new_errors=None):
        # not calling super() as our errors are special
        if errors is None:
            errors = result.errors
        if nr_new_errors is not None:
            is_input_valid = (nr_new_errors <= 0)
        else:
            is_input_valid = not result.contains_errors()

        if not self._exception_if_invalid:
            if is_input_valid:
                result.set(value=converted_value)
            return result
        for item_errors in (errors or ()):
            if (item_errors is None) or (len(item_errors) == 0):
                continue
            error = item_errors[0]
            raise InvalidDataError(error.msg, error.value, error.key, context)
        return result.value
コード例 #6
0
 def test_errors_can_generate_list_of_errors_from_single_error(self):
     e = InvalidDataError('a message', 42)
     assert_equals((e, ), e.errors())
コード例 #7
0
 def test_can_return_list_of_errors(self):
     e = InvalidDataError('a message', 42, error_list=['foo'])
     assert_equals(('foo', ), e.errors())
コード例 #8
0
 def mock_process(fields, context=None):
     raise InvalidDataError('a message', fields, key='expected', context=context)
コード例 #9
0
 def error(self, message='bad input', value=None):
     return InvalidDataError(message, value)