def report()

in dusty/reporters/reportportal/reporter.py [0:0]


    def report(self):
        """ Report """
        if not self._rp_client:
            log.warning("ReportPortal configuration/connection is invalid. Skipping RP reporting")
            return
        log.info("Reporting to ReportPortal")
        for item in self.context.findings:
            if item.get_meta("information_finding", False) or \
                    item.get_meta("false_positive_finding", False) or \
                    item.get_meta("excluded_finding", False):
                continue
            if isinstance(item, DastFinding):
                item_details = markdown.markdown_unescape(item.description)
                item_description = item_details
                tags = [
                    f'Tool: {item.get_meta("tool", "")}',
                    f'TestType: {self.context.get_meta("testing_type", "DAST")}',
                    f'Severity: {item.get_meta("severity", SEVERITIES[-1])}'
                ]
                if item.get_meta("confidence", None):
                    tags.append(f'Confidence: {item.get_meta("confidence")}')
                self._rp_client.start_test_item(
                    item.title,
                    description=item_description,
                    tags=tags
                )
                if item.get_meta("legacy.images", None):
                    for attachment in item.get_meta("legacy.images"):
                        self._rp_client.test_item_message(attachment["name"], "INFO", attachment)
                self._rp_client.test_item_message("!!!MARKDOWN_MODE!!! %s " % item_details, "INFO")
                self._rp_client.test_item_message(item.get_meta("issue_hash", "<no_hash>"), "ERROR")
                self._rp_client.finish_test_item()
            elif isinstance(item, SastFinding):
                item_details = markdown.markdown_unescape("\n\n".join(item.description))
                item_description = item_details
                tags = [
                    f'Tool: {item.get_meta("tool", "")}',
                    f'TestType: {self.context.get_meta("testing_type", "SAST")}',
                    f'Severity: {item.get_meta("severity", SEVERITIES[-1])}'
                ]
                if item.get_meta("confidence", None):
                    tags.append(f'Confidence: {item.get_meta("confidence")}')
                self._rp_client.start_test_item(
                    item.title,
                    description=item_description,
                    tags=tags
                )
                self._rp_client.test_item_message("!!!MARKDOWN_MODE!!! %s " % item_details, "INFO")
                self._rp_client.test_item_message(item.get_meta("issue_hash", "<no_hash>"), "ERROR")
                self._rp_client.finish_test_item()
            else:
                log.warning("Unsupported finding type")
                continue # raise ValueError("Unsupported item type")
        self._rp_client.finish_test()