From 90471d126d7d6910e1430ab4417d42a659288c61 Mon Sep 17 00:00:00 2001 From: Tibor Frank Date: Mon, 6 Feb 2017 14:06:12 +0100 Subject: [PATCH] CSIT doc autogen: Add media wiki format Change-Id: I4231cf4f056b2370e0a7a7f8a7267859bbeccd6f Signed-off-by: Tibor Frank --- resources/tools/report_gen/run_robot_data.py | 62 ++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 8 deletions(-) diff --git a/resources/tools/report_gen/run_robot_data.py b/resources/tools/report_gen/run_robot_data.py index e2bcfa2f0d..757c1a9443 100755 --- a/resources/tools/report_gen/run_robot_data.py +++ b/resources/tools/report_gen/run_robot_data.py @@ -207,11 +207,11 @@ def gen_html_table(data): """ table = '' - table += '' - table += '' - table += '' + table += '' + table += '' + table += '' - for item in data[0:-2]: + for item in data[0:-1]: table += '' for element in item: table += '' @@ -302,10 +302,12 @@ def gen_rst_table(data): table.append(template.format(*titles)) table.append(th_separator) # generate table rows - for d in data[0:-2]: - table.append(template.format(*d)) + for item in data[0:-2]: + desc = re.sub(r'(^ \|br\| )', r'', item[1]) + table.append(template.format(item[0], desc, item[2])) table.append(separator) - table.append(template.format(*data[-2])) + desc = re.sub(r'(^ \|br\| )', r'', data[-2][1]) + table.append(template.format(data[-2][0], desc, data[-2][2])) table.append(separator) return '\n'.join(table) @@ -331,7 +333,51 @@ def do_wiki(data, args): :type args: ArgumentParser :returns: Nothing. """ - raise NotImplementedError("Export to 'wiki' format is not implemented.") + + shift = int(args.level) + start = int(args.start) + + output = open(args.output, 'w') + + for item in data: + if int(item['level']) < start: + continue + if 'ndrchk' in item['title'].lower(): + continue + mark = "=" * (int(item['level']) - start + shift) + ' ' + output.write(mark + item['title'].lower() + mark + '\n') + output.write(item['doc'].replace('*', "'''").replace('|br|', '\n*') + + '\n') + try: + output.write(gen_wiki_table(item['tests']) + '\n\n') + except KeyError: + continue + output.close() + + +def gen_wiki_table(data): + """Generates a table with TCs' names, documentation and messages / statuses + in wiki format. + + :param data: Json data representing a table with TCs. + :type data: str + :returns: Table with TCs' names, documentation and messages / statuses in + wiki format. + :rtype: str + """ + + table = '{| class="wikitable"\n' + header = "" + for item in data[-1]: + header += '!{}\n'.format(item) + table += header + for item in data[0:-1]: + desc = re.sub(r'(^ \|br\| )', r'', item[1]).replace(' |br| ', '\n\n') + msg = item[2].replace(' |br| ', '\n\n') + table += '|-\n|{}\n|{}\n|{}\n'.format(item[0], desc, msg) + table += '|}\n' + + return table def process_robot_file(args): -- 2.16.6
NameDocumentationStatus
' + data[-1][0] + '' + data[-1][1] + '' + data[-1][2] + '
' + element.replace(' |br| ', '
') + '