Example #1
0
 def stop_after_fixture(self, attributes, messages):
     self._report_messages(messages)
     with self.lifecycle.update_after_fixture() as fixture:
         fixture.status = get_allure_status(attributes.get('status'))
         fixture.statusDetails = StatusDetails(message=self._current_msg,
                                               trace=self._current_tb)
     self.lifecycle.stop_after_fixture()
 def end_current_keyword(self, name, attributes):
     uuid = self.stack.pop()
     if uuid in self.items_log:
         keyword_logs = self.items_log.pop(uuid)
         if len(keyword_logs) < self.MAX_STEP_MESSAGE_COUNT:
             self.create_message_steps(uuid, *keyword_logs)
         else:
             self.reporter.attach_data(
                 uuid=uuid4(),
                 body=self.format_keyword_logs_to_attachment(*keyword_logs),
                 name='Keyword Log',
                 attachment_type=AttachmentType.HTML)
     args = {
         'uuid': uuid,
         'status': utils.get_allure_status(attributes.get('status')),
         'stop': now()
     }
     keyword_type = attributes.get('type')
     parent_item = self.reporter.get_last_item()
     if keyword_type in RobotKeywordType.FIXTURES and not isinstance(
             parent_item, TestStepResult):
         if keyword_type == RobotKeywordType.SETUP:
             self.reporter.stop_before_fixture(**args)
             return
         elif keyword_type == RobotKeywordType.TEARDOWN:
             self.reporter.stop_after_fixture(**args)
             return
     self.reporter.stop_step(**args)
    def stop_current_test(self, name, attributes):
        uuid = self.stack.pop()
        test = self.reporter.get_test(uuid)
        test.status = utils.get_allure_status(attributes.get('status'))
        test.labels.extend(utils.get_allure_suites(attributes.get('longname')))

        test.labels.extend(allure_tags(attributes))
        for label_type in (LabelType.EPIC, LabelType.FEATURE, LabelType.STORY):
            test.labels.extend(allure_labels(attributes, label_type))
        for link_type in (LinkType.ISSUE, LinkType.TEST_CASE, LinkType.LINK):
            test.links.extend(allure_links(attributes, link_type))
        test.labels.append(Label(name=LabelType.THREAD, value=self.pool_id))
        test.labels.append(Label(name=LabelType.HOST, value=host_tag()))
        test.labels.append(
            Label(name=LabelType.FRAMEWORK, value='robotframework'))
        test.labels.append(
            Label(name=LabelType.LANGUAGE, value=platform_label()))
        test.statusDetails = StatusDetails(message=attributes.get('message'),
                                           trace=self.get_traceback_message())
        test.description = attributes.get('doc')
        last_link = list(self.links.values())[-1] if self.links else None
        if attributes.get(Severity.CRITICAL, 'no') == 'yes':
            test.labels.append(
                Label(name=LabelType.SEVERITY, value=Severity.CRITICAL))
        if last_link:
            test.links.append(Link(LinkType.LINK, last_link, 'Link'))
        test.stop = now()
        self.reporter.close_test(uuid)
Example #4
0
 def stop_keyword(self, attributes, messages):
     self._report_messages(messages)
     with self.lifecycle.update_step() as step:
         step.status = get_allure_status(attributes.get('status'))
         step.parameters = get_allure_parameters(attributes.get('args'))
         step.statusDetails = StatusDetails(message=self._current_msg,
                                            trace=self._current_tb)
     self.lifecycle.stop_step()
Example #5
0
    def stop_test_container(self, name, attributes):
        suite_status = get_allure_status(attributes.get('status'))
        suite_message = attributes.get('message')

        with self.lifecycle.schedule_test_case() as test_result:
            if test_result.status == Status.PASSED and suite_message:
                test_result.status = suite_status
                test_result.statusDetails = StatusDetails(
                    message=self._current_msg or suite_message,
                    trace=self._current_tb)

        self._current_tb, self._current_msg = None, None
        self.lifecycle.write_container()
Example #6
0
 def stop_current_test(self, name, attributes):
     uuid = self.stack.pop()
     test = self.reporter.get_test(uuid)
     test.status = utils.get_allure_status(attributes.get('status'))
     test.labels.extend(utils.get_allure_suites(attributes.get('longname')))
     test.labels.extend(utils.get_allure_tags(attributes.get('tags')))
     test.labels.append(utils.get_allure_thread(self.pool_id))
     test.labels.append(Label(LabelType.HOST, value=host_tag()))
     test.statusDetails = StatusDetails(message=attributes.get('message'))
     test.description = attributes.get('doc')
     last_link = list(self.links.values())[-1] if self.links else None
     if last_link:
         test.links.append(Link(LinkType.LINK, last_link, 'Link'))
     test.stop = now()
     self.reporter.close_test(uuid)
Example #7
0
    def stop_test(self, _, attributes, messages):
        self._report_messages(messages)

        if 'skipped' in [tag.lower() for tag in attributes['tags']]:
            attributes['status'] = RobotStatus.SKIPPED

        with self.lifecycle.update_test_case() as test_result:
            test_result.stop = now()
            test_result.description = attributes.get('doc')
            test_result.status = get_allure_status(attributes.get('status'))
            test_result.labels.extend(
                get_allure_suites(attributes.get('longname')))
            test_result.labels.append(
                Label(name=LabelType.FRAMEWORK, value='robotframework'))
            test_result.labels.append(
                Label(name=LabelType.LANGUAGE, value=self._platform))
            test_result.labels.append(
                Label(name=LabelType.HOST, value=self._host))
            test_result.labels.append(
                Label(name=LabelType.THREAD, value=pool_id()))
            test_result.labels.extend(allure_tags(attributes))
            test_result.statusDetails = StatusDetails(
                message=self._current_msg or attributes.get('message'),
                trace=self._current_tb)

            if attributes.get('critical') == 'yes':
                test_result.labels.append(
                    Label(name=LabelType.SEVERITY, value=Severity.CRITICAL))

            for label_type in (LabelType.EPIC, LabelType.FEATURE,
                               LabelType.STORY):
                test_result.labels.extend(allure_labels(
                    attributes, label_type))

            for link_type in (LinkType.ISSUE, LinkType.TEST_CASE,
                              LinkType.LINK):
                test_result.links.extend(allure_links(attributes, link_type))

        self._current_tb, self._current_msg = None, None
 def end_current_keyword(self, name, attributes):
     uuid = self.stack.pop()
     if uuid in self.items_log:
         self.reporter.attach_data(uuid=uuid4(),
                                   body=self.items_log.pop(uuid).replace('\n', '<br>'),
                                   name='Keyword Log',
                                   attachment_type=AttachmentType.HTML)
     args = {
         'uuid': uuid,
         'status': utils.get_allure_status(attributes.get('status')),
         'stop': now()
     }
     keyword_type = attributes.get('type')
     parent_item = self.reporter.get_last_item()
     if keyword_type in RobotKeywordType.FIXTURES and not isinstance(parent_item, TestStepResult):
         if keyword_type == RobotKeywordType.SETUP:
             self.reporter.stop_before_fixture(**args)
             return
         elif keyword_type == RobotKeywordType.TEARDOWN:
             self.reporter.stop_after_fixture(**args)
             return
     self.reporter.stop_step(**args)
Example #9
0
 def stop_current_test(self, name, attributes):
     uuid = self.stack.pop()
     test = self.reporter.get_test(uuid)
     test.status = utils.get_allure_status(attributes.get('status'))
     test.labels.extend(utils.get_allure_suites(attributes.get('longname')))
     test.labels.extend(utils.get_allure_tags(attributes.get('tags')))
     test.labels.append(utils.get_allure_thread(self.pool_id))
     test.labels.append(Label(LabelType.HOST, value=host_tag()))
     test.labels.append(
         Label(name=LabelType.FRAMEWORK, value='robotframework'))
     test.labels.append(
         Label(name=LabelType.LANGUAGE, value=platform_label()))
     test.statusDetails = StatusDetails(message=attributes.get('message'))
     test.description = attributes.get('doc')
     last_link = list(self.links.values())[-1] if self.links else None
     if attributes.get(Severity.CRITICAL, 'no') == 'yes':
         test.labels.append(
             Label(name=LabelType.SEVERITY, value=Severity.CRITICAL))
     if last_link:
         test.links.append(Link(LinkType.LINK, last_link, 'Link'))
     test.stop = now()
     self.reporter.close_test(uuid)
Example #10
0
 def end_current_keyword(self, name, attributes):
     uuid = self.stack.pop()
     if uuid in self.items_log:
         self.reporter.attach_data(uuid=uuid4(),
                                   body=self.items_log.pop(uuid).replace('\n', '<br>'),
                                   name='Keyword Log',
                                   attachment_type=AttachmentType.HTML)
     args = {
         'uuid': uuid,
         'status': utils.get_allure_status(attributes.get('status')),
         'stop': now()
     }
     keyword_type = attributes.get('type')
     parent_item = self.reporter.get_last_item()
     if keyword_type in RobotKeywordType.FIXTURES and not isinstance(parent_item, TestStepResult):
         if keyword_type == RobotKeywordType.SETUP:
             self.reporter.stop_before_fixture(**args)
             return
         elif keyword_type == RobotKeywordType.TEARDOWN:
             self.reporter.stop_after_fixture(**args)
             return
     self.reporter.stop_step(**args)
    def stop_current_test(self, name, attributes):
        uuid = self.stack.pop()
        test = self.reporter.get_test(uuid)
        test.status = utils.get_allure_status(attributes.get('status'))
        test.labels.extend(utils.get_allure_suites(attributes.get('longname')))

        test.labels.extend(allure_tags(attributes))
        for label_type in (LabelType.EPIC, LabelType.FEATURE, LabelType.STORY):
            test.labels.extend(allure_labels(attributes, label_type))
        for link_type in (LinkType.ISSUE, LinkType.TEST_CASE, LinkType.LINK):
            test.links.extend(allure_links(attributes, link_type))
        test.labels.append(Label(name=LabelType.THREAD, value=self.pool_id))
        test.labels.append(Label(name=LabelType.HOST, value=host_tag()))
        test.labels.append(Label(name=LabelType.FRAMEWORK, value='robotframework'))
        test.labels.append(Label(name=LabelType.LANGUAGE, value=platform_label()))
        test.statusDetails = StatusDetails(message=attributes.get('message'), trace=self.get_traceback_message())
        test.description = attributes.get('doc')
        last_link = list(self.links.values())[-1] if self.links else None
        if attributes.get(Severity.CRITICAL, 'no') == 'yes':
            test.labels.append(Label(name=LabelType.SEVERITY, value=Severity.CRITICAL))
        if last_link:
            test.links.append(Link(LinkType.LINK, last_link, 'Link'))
        test.stop = now()
        self.reporter.close_test(uuid)