X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Ftools%2Fpresentation%2Fgenerator_files.py;h=4c39e6f648a2dea11d4dbebba3ef5cf237cb16f3;hb=b5e2d94901060f29dddbc3cc1c3dcf47499dd158;hp=00a78cc99ae48c0db87d25108d9153a543562a19;hpb=cbfa26dc0f5334bcd367c161b4eaad342355bbde;p=csit.git diff --git a/resources/tools/presentation/generator_files.py b/resources/tools/presentation/generator_files.py index 00a78cc99a..4c39e6f648 100644 --- a/resources/tools/presentation/generator_files.py +++ b/resources/tools/presentation/generator_files.py @@ -41,7 +41,8 @@ def generate_files(spec, data): """ generator = { - u"file_test_results": file_test_results + u"file_test_results": file_test_results, + u"file_test_results_html": file_test_results_html } logging.info(u"Generating the files ...") @@ -114,7 +115,7 @@ def file_test_results(file_spec, input_data): suites = input_data.merge_data(suites) suites.sort_index(inplace=True) - with open(file_name, u"w") as file_handler: + with open(file_name, u"wt") as file_handler: file_handler.write(rst_header) for suite_longname, suite in suites.items(): if len(suite_longname.split(u".")) <= \ @@ -128,7 +129,8 @@ def file_test_results(file_spec, input_data): if not (u"-ndrpdr" in suite[u"name"] or u"-mrr" in suite[u"name"] or u"-func" in suite[u"name"] or - u"-device" in suite[u"name"]): + u"-device" in suite[u"name"] or + u"-dev" in suite[u"name"]): file_handler.write(f"\n{suite[u'name']}\n{title_line}\n") if _tests_in_suite(suite[u"name"], tests): @@ -144,3 +146,83 @@ def file_test_results(file_spec, input_data): file_html=tbl_file.split(u"/")[-1])) logging.info(u" Done.") + + +def file_test_results_html(file_spec, input_data): + """Generate the file(s) with algorithms + - file_test_results_html + specified in the specification file. + + :param file_spec: File to generate. + :param input_data: Data to process. + :type file_spec: pandas.Series + :type input_data: InputData + """ + + file_name = f"{file_spec[u'output-file']}.rst" + rst_header = file_spec[u"file-header"] + + logging.info(f" Generating the file {file_name} ...") + + table_lst = get_files(file_spec[u"dir-tables"], u".rst", full_path=True) + if not table_lst: + logging.error( + f" No tables to include in {file_spec[u'dir-tables']}. Skipping." + ) + return + + logging.info(f" Writing file {file_name}") + + logging.info( + f" Creating the tests data set for the " + f"{file_spec.get(u'type', u'')} {file_spec.get(u'title', u'')}." + ) + + tests = input_data.filter_data( + file_spec, + params=[u"name", u"parent", u"doc", u"type", u"level"], + continue_on_error=True + ) + if tests.empty: + return + tests = input_data.merge_data(tests) + tests.sort_index(inplace=True) + + suites = input_data.filter_data( + file_spec, + continue_on_error=True, + data_set=u"suites" + ) + if suites.empty: + return + suites = input_data.merge_data(suites) + + with open(file_name, u"wt") as file_handler: + file_handler.write(rst_header) + for suite_longname, suite in suites.items(): + if len(suite_longname.split(u".")) <= \ + file_spec[u"data-start-level"]: + continue + + title_line = \ + get_rst_title_char( + suite[u"level"] - file_spec[u"data-start-level"] - 1 + ) * len(suite[u"name"]) + if not (u"-ndrpdr" in suite[u"name"] or + u"-mrr" in suite[u"name"] or + u"-func" in suite[u"name"] or + u"-device" in suite[u"name"]): + file_handler.write(f"\n{suite[u'name']}\n{title_line}\n") + + if _tests_in_suite(suite[u"name"], tests): + file_handler.write(f"\n{suite[u'name']}\n{title_line}\n") + file_handler.write( + f"\n{suite[u'doc']}\n".replace(u'|br|', u'\n\n -') + ) + for tbl_file in table_lst: + if suite[u"name"] in tbl_file: + file_handler.write( + f"\n.. include:: {tbl_file.split(u'/')[-1]}\n" + ) + + logging.info(u" Done.")