def test_should_fail_read_text_for_application_json(self, payload): with self.assertRaises(falcon.HTTPBadRequest) as context: raw_msg = 'Hello World' payload.read.return_value = raw_msg ru.read_body(payload, 'application/json') self.assertEqual(context.exception.title, 'Failed to read body as json')
def test_should_read_text_for_plain_text(self, payload): raw_msg = 'Hello World' msg = u''.join(raw_msg) payload.read.return_value = raw_msg self.assertEqual(msg, ru.read_body(payload, 'text/plain'))
def test_should_read_json_for_application_json(self, payload): raw_msg = u'{"path":"/var/log/messages","message":"This is message"}' json_msg = simplejson.loads(raw_msg, encoding='utf-8') payload.read.return_value = raw_msg self.assertEqual(json_msg, ru.read_body(payload, 'application/json'))
def new_log(self, application_type, dimensions, payload, content_type='application/json', validate=True): """Creates new log object. :param str application_type: origin of the log :param dict dimensions: dictionary of dimensions (any data sent to api) :param stream payload: stream to read log entry from :param str content_type: actual content type used to send data to server :param bool validate: by default True, marks if log should be validated :return: log object :rtype: dict :keyword: log_object """ payload = rest_utils.read_body(payload, content_type) if not payload: return None # normalize_yet_again application_type = parse_application_type(application_type) dimensions = parse_dimensions(dimensions) if validate: self._log.debug('Validation enabled, proceeding with validation') Validations.validate_application_type(application_type) Validations.validate_dimensions(dimensions) self._log.debug( 'application_type=%s,dimensions=%s' % ( application_type, dimensions) ) log_object = {} if content_type == 'application/json': log_object.update(payload) else: log_object.update({'message': payload}) log_object.update({ 'application_type': application_type, 'dimensions': dimensions }) return log_object