def test_should_fail_for_invalid_content(self): r_app_type = '%#$@!' with self.assertRaises(exceptions.HTTPUnprocessableEntity) as context: validation.validate_application_type(r_app_type) msg = ('Application type %s may only contain: "a-z A-Z 0-9 _ - ."' % r_app_type) self.assertEqual(context.exception.description, msg)
def test_should_fail_for_invalid_length(self): r_app_type = testing.rand_string(300, 600) with self.assertRaises(exceptions.HTTPUnprocessableEntity) as context: validation.validate_application_type(r_app_type) length = validation.APPLICATION_TYPE_CONSTRAINTS['MAX_LENGTH'] msg = ('Application type {type} must be ' '{length} characters or less'.format(type=r_app_type, length=length)) self.assertEqual(context.exception.description, msg)
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') validation.validate_application_type(application_type) validation.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}) validation.validate_log_message(log_object) dimensions['component'] = application_type log_object.update({'dimensions': dimensions}) return log_object
def test_should_pass_for_ok_app_type(self): r_app_type = 'monasca' validation.validate_application_type(r_app_type)
def test_should_pass_for_empty_app_type(self): validation.validate_application_type() validation.validate_application_type('')