def test_parse_message_bad_content_type_should_warn(self): # setup encoded_payload = json.dumps(self.payload).encode() properties = MessageProperties(content_type=self.bad_content_type) message = Message( body=encoded_payload, properties=properties, annotations={ common_parser.DEVICE_ID_IDENTIFIER: self.device_id.encode() }, ) args = CommonParserArguments(content_type="application/json") parser = common_parser.CommonParser(message=message, common_parser_args=args) # act parsed_msg = parser.parse_message() # verify assert parsed_msg["event"]["payload"] == self.payload expected_details_1 = strings.invalid_encoding_none_found() expected_details_2 = strings.content_type_mismatch( self.bad_content_type, "application/json") _validate_issues( parser, Severity.warning, 2, 2, [expected_details_1, expected_details_2], )
def _parse_content_encoding(self, message: Message, system_properties) -> str: content_encoding = "" if "content_encoding" in system_properties: content_encoding = system_properties["content_encoding"] if not content_encoding: details = strings.invalid_encoding_none_found() self._add_issue(severity=Severity.warning, details=details) return None if "utf-8" not in content_encoding.lower(): details = strings.invalid_encoding(content_encoding.lower()) self._add_issue(severity=Severity.warning, details=details) return None return content_encoding