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]))])
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)
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)
def handleLiteralBlock(self, text): pre = html.pre(text) if self.tagstack: self.tagstack[-1].append(pre) else: self.root = pre
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
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()
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