def transform_to_json_api_errors(validation_error: ValidationError) -> dict: def transform_error(error): return { 'detail': error.get('msg'), 'title': error.get('type'), 'source': { 'pointer': '/' + '/'.join(error['loc']), }, } error_response = ErrorResponse( errors=[transform_error(error) for error in validation_error.errors()]) return filter_none(error_response.dict())
def test_empty_error_response_valid(): error_response = {'errors': []} validated = ErrorResponse(**error_response) assert filter_none(validated.dict()) == error_response
def test_error_response_with_all_fields(): error_response = errors_wrapper(error_with_all_fields) validated = ErrorResponse(**error_response) assert filter_none(validated.dict()) == error_response
def test_valid_error_response_fields(error_response): validated = ErrorResponse(**error_response) assert filter_none(validated.dict()) == error_response
def dict(self, *, serlialize_none: bool = False, **kwargs): response = super().dict(**kwargs) if serlialize_none: return response return filter_none(response)