Example #1
0
def pytest_html_results_summary(prefix, summary, postfix):
    prefix.extend([html.h3("stderr")])
    prefix.extend([html.pre(''.join([line for line in stderr]))])
    prefix.extend([html.h3("stdout")])
    prefix.extend([html.pre(''.join([line for line in stdout]))])
    prefix.extend([html.h3("App errors")])
    prefix.extend([html.pre(''.join([line for line in apperrs]))])
Example #2
0
 def tabelize(value):
     try:
         rows = []
         for key in value.keys():
             rows.append(html.tr(html.td(html.pre(key)), html.td(tabelize(value[key]))))
         return html.table(rows)
     except AttributeError:
         if type(value) == type([]):
             return html.table(map(tabelize, value))
         else:
             return html.pre(value)
Example #3
0
 def tabelize(value):
     try:
         rows = []
         for key in value.keys():
             rows.append(
                 html.tr(html.td(html.pre(key)),
                         html.td(tabelize(value[key]))))
         return html.table(rows)
     except AttributeError:
         if type(value) == type([]):
             return html.table(map(tabelize, value))
         else:
             return html.pre(value)
Example #4
0
 def handleLiteralBlock(self, text):
     pre = html.pre(text)
     if self.tagstack:
         self.tagstack[-1].append(pre)
     else:
         self.root = pre
Example #5
0
    def make_table_rows(self):
        regressions = self.results.regressions

        rv = []
        tests = sorted(regressions.keys())
        for i, test in enumerate(tests):
            odd_or_even = "even" if i % 2 else "odd"
            test_data = regressions[test]
            test_name = self.get_test_name(test, test_data)
            for subtest in sorted(test_data.keys()):
                cells = []
                sub_name = self.get_sub_name(test, test_data, subtest)

                subtest_data = test_data[subtest]
                cell_expected = self.get_cell_expected(subtest_data).upper()
                class_expected = self.get_class_expected(subtest_data)
                cell_message = subtest_data.get("message", "")
                cell_status = subtest_data["status"]

                if cell_message != "":
                    try:
                        # if cell_message is dict obj, then it will be {'text': HTML_A_TEXT, 'href': HTML_A_HREF, 'target': HTML_A_TARGET}
                        link = pickle.loads(cell_message)
                        if 'text' in link and 'href' in link:
                            if 'target' in link:
                                cell_message = html.div(html.pre(
                                    html.a(link['text'],
                                           href=link['href'],
                                           target=link['target'])),
                                                        class_='log')
                            else:
                                cell_message = html.div(html.pre(
                                    html.a(link['text'], href=link['href'])),
                                                        class_='log')
                    except:
                        log = html.pre()
                        for line in cell_message.splitlines():
                            separator = line.startswith(' ' * 10)
                            if separator:
                                log.append(line[:80])
                            else:
                                if line.lower().find(
                                        "error") != -1 or line.lower().find(
                                            "exception") != -1:
                                    log.append(
                                        html.span(raw(cgi.escape(line)),
                                                  class_='error'))
                                else:
                                    log.append(raw(cgi.escape(line)))
                        cell_message = html.div(log, class_='log')

                href = 'data:text/plain;charset=utf-8;base64,%s' % base64.b64encode(
                    json.dumps(subtest_data))

                cells.extend([
                    html.td(test_name,
                            class_="parent_test %s col-parent" % odd_or_even),
                    html.td(html.a(sub_name,
                                   class_='test col-subtest',
                                   href=href,
                                   target='_blank'),
                            class_="parent_test %s" % odd_or_even),
                    html.td(cell_expected,
                            class_="condition col-expected %s %s" %
                            (class_expected, odd_or_even)),
                    html.td(cell_status.title(),
                            class_="condition col-result %s %s" %
                            (cell_status, odd_or_even))
                ])
                if cell_message == "":
                    rv.append(
                        html.tr(cells,
                                class_='passed results-table-row %s %s' %
                                (cell_status, odd_or_even)))
                else:
                    rv.extend([
                        html.tr(cells,
                                class_='error results-table-row %s %s' %
                                (cell_status, odd_or_even)),
                        html.tr(
                            html.td(cell_message,
                                    class_='debug {}'.format(odd_or_even),
                                    colspan=5))
                    ])
        return rv
Example #6
0
def pytest_html_results_table_row(report, cells):
    cells.insert(1, html.td(html.pre(report.description)))
    cells.insert(3, html.td(datetime.utcnow(), class_='col-time'))
    cells.pop()
Example #7
0
    def make_table_rows(self):
        regressions = self.results.regressions

        rv = []
        tests = sorted(regressions.keys())
        for i, test in enumerate(tests):
            odd_or_even = "even" if i % 2 else "odd"
            test_data = regressions[test]
            test_name = self.get_test_name(test, test_data)
            for subtest in sorted(test_data.keys()):
                cells = []
                sub_name = self.get_sub_name(test, test_data, subtest)

                subtest_data = test_data[subtest]
                cell_expected = self.get_cell_expected(subtest_data).upper()
                class_expected = self.get_class_expected(subtest_data)
                cell_message = subtest_data.get("message", "")
                cell_status = subtest_data["status"]

                if cell_message != "":
                    try:
                        # if cell_message is dict obj, then it will be {'text': HTML_A_TEXT, 'href': HTML_A_HREF, 'target': HTML_A_TARGET}
                        link = pickle.loads(cell_message)
                        if 'text' in link and 'href' in link:
                            if 'target' in link:
                                cell_message = html.div(html.pre(html.a(link['text'], href=link['href'], target=link['target'])), class_='log')
                            else:
                                cell_message = html.div(html.pre(html.a(link['text'], href=link['href'])), class_='log')
                    except:
                        log = html.pre()
                        for line in cell_message.splitlines():
                            separator = line.startswith(' ' * 10)
                            if separator:
                                log.append(line[:80])
                            else:
                                if line.lower().find("error") != -1 or line.lower().find("exception") != -1:
                                    log.append(html.span(raw(cgi.escape(line)), class_='error'))
                                else:
                                    log.append(raw(cgi.escape(line)))
                        cell_message = html.div(log, class_='log')

                href = 'data:text/plain;charset=utf-8;base64,%s' % base64.b64encode(json.dumps(subtest_data))

                cells.extend([
                    html.td(test_name, class_="parent_test %s col-parent" % odd_or_even),
                    html.td(
                        html.a(sub_name, class_='test col-subtest', href=href, target='_blank'),
                        class_="parent_test %s" % odd_or_even),
                    html.td(cell_expected,
                        class_="condition col-expected %s %s" % (class_expected, odd_or_even)),
                    html.td(cell_status.title(),
                        class_="condition col-result %s %s" % (cell_status, odd_or_even))
                ])
                if cell_message == "":
                    rv.append(
                        html.tr(cells, class_='passed results-table-row %s %s' % (cell_status, odd_or_even))
                        )
                else:
                   rv.extend([
                        html.tr(cells, class_='error results-table-row %s %s' % (cell_status, odd_or_even)),
                        html.tr(html.td(cell_message, class_='debug {}'.format(odd_or_even), colspan=5))
                        ])
        return rv