def test_truncate_response_to_string_casting(handler, logger, response_in, expected_response_out): filter_ = filters.TruncateResponseFilter(entrypoints=['spam'], max_len=24) logger.addFilter(filter_) extra = { constants.TRACE_KEY: { constants.STAGE_KEY: constants.Stage.response.value, constants.ENTRYPOINT_NAME_KEY: 'spam', constants.RESPONSE_KEY: response_in, }, } logger.info('response', extra=extra) data = getattr(handler.log_record, constants.TRACE_KEY) assert data[constants.RESPONSE_KEY] == expected_response_out
def test_truncate_response_ignores_error_response(handler, logger): filter_ = filters.TruncateResponseFilter(entrypoints=['^spam'], max_len=5) logger.addFilter(filter_) extra = { constants.TRACE_KEY: { constants.STAGE_KEY: constants.Stage.response.value, constants.ENTRYPOINT_NAME_KEY: 'spam', constants.RESPONSE_STATUS_KEY: constants.Status.error.value, }, } logger.info('response', extra=extra) data = getattr(handler.log_record, constants.TRACE_KEY) assert constants.RESPONSE_TRUNCATED_KEY not in data assert constants.RESPONSE_LENGTH_KEY not in data assert constants.REQUEST_TRUNCATED_KEY not in data assert constants.REQUEST_LENGTH_KEY not in data
def test_truncate_response(handler, logger, entrypoints, max_len, expected_response, expected_response_length, truncated): filter_ = filters.TruncateResponseFilter(entrypoints=entrypoints, max_len=max_len) logger.addFilter(filter_) extra = { constants.TRACE_KEY: { constants.STAGE_KEY: constants.Stage.response.value, constants.ENTRYPOINT_NAME_KEY: 'spam', constants.RESPONSE_KEY: '123456789', }, } logger.info('response', extra=extra) data = getattr(handler.log_record, constants.TRACE_KEY) assert data[constants.RESPONSE_KEY] == expected_response assert data.get(constants.RESPONSE_TRUNCATED_KEY, False) == truncated assert data.get(constants.RESPONSE_LENGTH_KEY) == expected_response_length