fixed html reporting issue in validation suite.
This commit is contained in:
@@ -36,6 +36,10 @@ class TestItemReport(TestItem):
|
||||
|
||||
success = TestValue.SUCCESS
|
||||
for rep in reports:
|
||||
try:
|
||||
rep.exec(self.report.db_connection, rep_name, no_header=True)
|
||||
except Exception as e:
|
||||
print(f"Error reporting '{rep.type}': {e}")
|
||||
|
||||
|
||||
self.result.set(success)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
|
||||
from lxml import (etree, html)
|
||||
import lxml
|
||||
import html
|
||||
import interpreter.test_report.report_export as rpe
|
||||
import interpreter.test_report.test_report as tr
|
||||
import interpreter.utils.constants as cst
|
||||
@@ -13,60 +14,64 @@ class ReportExportHTML(rpe.ReportExport):
|
||||
self.create_base()
|
||||
self.process_tests()
|
||||
with open(self._file_name, 'w') as f:
|
||||
f.write(html.tostring(self.root, pretty_print=True).decode())
|
||||
f.write(lxml.html.tostring(self.root, pretty_print=True).decode())
|
||||
|
||||
def testsIterate(self, row):
|
||||
super().testsIterate(row)
|
||||
rdata = self.extract_info(row)
|
||||
trow = etree.SubElement(self.table, 'tr')
|
||||
trow = lxml.etree.SubElement(self.table, 'tr')
|
||||
try:
|
||||
for r in self.ROW_TEXTS:
|
||||
rh = etree.SubElement(trow, 'td')
|
||||
rh = lxml.etree.SubElement(trow, 'td')
|
||||
if r[self.KEY_INDEX] == self.KEY_DURATION:
|
||||
rh.text = '{:.4f}'.format(rdata[r[self.KEY_INDEX]])
|
||||
else:
|
||||
rh.text = rdata[r[self.KEY_INDEX]]
|
||||
|
||||
if rdata[self.KEY_LOG] != '':
|
||||
h2 = etree.SubElement(self.logsection, 'h3')
|
||||
h2 = lxml.etree.SubElement(self.logsection, 'h3')
|
||||
h2.text = rdata[self.KEY_TITLE]
|
||||
for l in rdata[self.KEY_LOG].splitlines():
|
||||
p = etree.SubElement(self.logsection, 'p')
|
||||
p.text = l
|
||||
p = lxml.etree.SubElement(self.logsection, 'p')
|
||||
p.text = html.escape(l)
|
||||
except ValueError as e:
|
||||
print(f"Error reporting html: {e}")
|
||||
|
||||
|
||||
def create_base(self):
|
||||
repname = self.header[cst.DB_TEST_SET_NAME]
|
||||
if self.name != '':
|
||||
repname = self.name
|
||||
|
||||
self.root = etree.Element('html', lang='en')
|
||||
head = etree.SubElement(self.root, 'head')
|
||||
title = etree.SubElement(head, 'title')
|
||||
self.root = lxml.etree.Element('html', lang='en')
|
||||
head = lxml.etree.SubElement(self.root, 'head')
|
||||
title = lxml.etree.SubElement(head, 'title')
|
||||
title.text = repname
|
||||
self.body = etree.SubElement(self.root, 'body')
|
||||
h1 = etree.SubElement(self.body, 'h1')
|
||||
self.body = lxml.etree.SubElement(self.root, 'body')
|
||||
h1 = lxml.etree.SubElement(self.body, 'h1')
|
||||
h1.text = repname
|
||||
|
||||
div = etree.SubElement(self.body, 'div')
|
||||
h2 = etree.SubElement(div, 'h2')
|
||||
div = lxml.etree.SubElement(self.body, 'div')
|
||||
h2 = lxml.etree.SubElement(div, 'h2')
|
||||
h2.text = 'Test conditions'
|
||||
|
||||
for k in self.HEADER_TEXTS.keys():
|
||||
if k in self.header.keys():
|
||||
h = etree.SubElement(div, 'h3')
|
||||
h = lxml.etree.SubElement(div, 'h3')
|
||||
h.text = self.HEADER_TEXTS[k]
|
||||
p = etree.SubElement(div, 'p')
|
||||
p = lxml.etree.SubElement(div, 'p')
|
||||
p.text = self.header[k]
|
||||
|
||||
div = etree.SubElement(self.body, 'div')
|
||||
h2 = etree.SubElement(div, 'h2')
|
||||
div = lxml.etree.SubElement(self.body, 'div')
|
||||
h2 = lxml.etree.SubElement(div, 'h2')
|
||||
h2.text = 'Test results'
|
||||
|
||||
self.table = etree.SubElement(self.body, 'table')
|
||||
row = etree.SubElement(self.table, 'tr')
|
||||
self.table = lxml.etree.SubElement(self.body, 'table')
|
||||
row = lxml.etree.SubElement(self.table, 'tr')
|
||||
for r in self.ROW_TEXTS:
|
||||
rh = etree.SubElement(row, 'th')
|
||||
rh = lxml.etree.SubElement(row, 'th')
|
||||
rh.text = r[self.TEXT_INDEX]
|
||||
|
||||
self.logsection = etree.SubElement(self.body, 'div')
|
||||
h2 = etree.SubElement(self.logsection, 'h2')
|
||||
self.logsection = lxml.etree.SubElement(self.body, 'div')
|
||||
h2 = lxml.etree.SubElement(self.logsection, 'h2')
|
||||
h2.text = 'Logs'
|
||||
|
||||
Reference in New Issue
Block a user