in sync/notify/msg.py [0:0]
def summary_message(results: Results) -> str:
"""Generate a summary message for results indicating how many tests ran"""
summary = results.summary()
job_names = {browser: results.job_names(browser) for browser in browsers}
github_browsers = list_join(browser.title() for browser in browsers
if "GitHub" in job_names[browser])
gecko_configs = len([item for item in job_names["firefox"] if item != "GitHub"])
data = [f"Ran {gecko_configs} Firefox configurations based on mozilla-central"]
if github_browsers:
data[-1] += f", and {github_browsers} on GitHub CI"
data.append("")
data.append("Total %s tests" % summary.parent_tests)
subtests = summary.subtests
if subtests:
data[-1] += " and %s subtests" % subtests
data[-1] += "\n"
result_statuses = [status for status in statuses if status in summary.job_results]
if not result_statuses:
return "\n".join(data)
data.append("## Status Summary\n")
max_width = len(max(result_statuses, key=len))
for browser in browsers:
if not job_names[browser]:
continue
data.append("### %s" % browser.title())
for result in ["OK", "PASS", "CRASH", "FAIL", "PRECONDITION_FAILED", "TIMEOUT",
"ERROR", "NOTRUN"]:
if browser in summary.job_results[result]:
result_data = summary.job_results[result][browser]
data.append("{}: {}".format(f"`{result}`".ljust(max_width + 2),
summary_value(result_data)))
data.append("")
return "\n".join(data)