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