diff options
author | Tibor Frank <tifrank@cisco.com> | 2017-02-06 14:06:12 +0100 |
---|---|---|
committer | Peter Mikus <pmikus@cisco.com> | 2017-02-07 08:57:54 +0000 |
commit | 90471d126d7d6910e1430ab4417d42a659288c61 (patch) | |
tree | 2cd7032fe9f4367d5b8efe6cb103803b04ae8575 | |
parent | b99278e6939bf94aef9652de9701e897879acaeb (diff) |
CSIT doc autogen: Add media wiki format
Change-Id: I4231cf4f056b2370e0a7a7f8a7267859bbeccd6f
Signed-off-by: Tibor Frank <tifrank@cisco.com>
-rwxr-xr-x | resources/tools/report_gen/run_robot_data.py | 62 |
1 files 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 width=100% border=1><tr>' - table += '<th width=30%>Name</th>' - table += '<th width=50%>Documentation</th>' - table += '<th width=20%>Status</th></tr>' + table += '<th width=30%>' + data[-1][0] + '</th>' + table += '<th width=50%>' + data[-1][1] + '</th>' + table += '<th width=20%>' + data[-1][2] + '</th></tr>' - for item in data[0:-2]: + for item in data[0:-1]: table += '<tr>' for element in item: table += '<td>' + element.replace(' |br| ', '<br>') + '</td>' @@ -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): |