Add an ability to change len of logs in xml before sending to TR
Change-Id: I3093c4b8518fcb2003098cf97fb02cec05f4f3e4
Related-prod: PRODX-13974
diff --git a/update_testrail_xml/cmd.py b/update_testrail_xml/cmd.py
index 9238200..15fc922 100644
--- a/update_testrail_xml/cmd.py
+++ b/update_testrail_xml/cmd.py
@@ -40,6 +40,7 @@
'OUTPUT_XUNIT_REPORT': 'output_report.xml',
'XUNIT_NAME_TEMPLATE': '{id}',
'TESTRAIL_NAME_TEMPLATE': '{custom_report_label}',
+ 'TRACE_LEN': 100,
'ISO_ID': None,
'TESTRAIL_PLAN_NAME': None,
'ENV_DESCRIPTION': '',
@@ -126,6 +127,11 @@
default=defaults['TESTRAIL_TEST_SUITE'],
help='testrail project suite name')
parser.add_argument(
+ '--trace-len',
+ type=int,
+ default=defaults['TRACE_LEN'],
+ help='testrail project name')
+ parser.add_argument(
'--send-skipped',
action='store_true',
default=False,
@@ -181,6 +187,7 @@
logger_dict['level'] = logging.DEBUG
logging.basicConfig(**logger_dict)
+ trace_len = args.trace_len
reporter = Reporter(
xunit_report=args.xunit_report,
@@ -206,6 +213,7 @@
reporter.update_testcases(all_empty_cases)
reporter.delete_duplicates()
+ reporter.cut_long_traces(trace_len)
reporter.delete_temporary_file()
diff --git a/update_testrail_xml/reporter.py b/update_testrail_xml/reporter.py
index 0b9710e..beabebb 100644
--- a/update_testrail_xml/reporter.py
+++ b/update_testrail_xml/reporter.py
@@ -190,10 +190,28 @@
logger.info(' Start saving results to the file: {}'.format(self.output_xunit_report))
tree = ET.ElementTree(root)
- tree.write(self.output_xunit_report)
+ tree.write(self.temporary_filename)
logger.info(' {} file was created: {}'.format(self.output_xunit_report, self.check_file_exists(self.output_xunit_report)))
+ def cut_long_traces(self, trace_len):
+ tree = ET.parse(self.temporary_filename)
+ root = tree.getroot()
+
+ if root[0].tag == 'testsuite':
+ root = root[0]
+
+ for child in root:
+ try:
+ if child[0].text.count('\n') > trace_len:
+ ind = [m.start() for m in re.finditer('\n', child[0].text)][-trace_len]
+ old = child[0].text[ind:]
+ child[0].text = old
+ except IndexError:
+ pass
+ tree = ET.ElementTree(root)
+ tree.write(self.output_xunit_report)
+
def check_file_exists(self, filename):
return str(os.path.isfile(filename))