Chromium Code Reviews| Index: build/android/pylib/results/presentation/test_results_presentation.py |
| diff --git a/build/android/pylib/results/presentation/test_results_presentation.py b/build/android/pylib/results/presentation/test_results_presentation.py |
| index c7394132d6989d0327ef0ff7ed601acf39aec10e..9b684973660bc8ad5fd184cbfde558a3e20d2e28 100755 |
| --- a/build/android/pylib/results/presentation/test_results_presentation.py |
| +++ b/build/android/pylib/results/presentation/test_results_presentation.py |
| @@ -250,7 +250,16 @@ def create_suite_table(results_dict): |
| footer_row) |
| -def results_to_html(results_dict, cs_base_url, bucket, server_url): |
| +def feedback_url(result_details_link): |
| + return ('https://bugs.chromium.org/p/chromium/issues/entry?' |
|
jbudorick
2017/05/04 18:09:27
nit: this might be a bit more readable if you hand
BigBossZhiling
2017/05/05 21:57:57
Done.
|
| + 'labels=Pri-2,Type-Bug,Restrict-View-Google&' |
| + 'summary=Result Details Feedback:' |
| + '&components=Test%3EAndroid&' |
| + 'comment=Please check out: ') + result_details_link |
| + |
| + |
| +def results_to_html(results_dict, cs_base_url, bucket, server_url, test_name, |
| + builder_name, build_number): |
| """Convert list of test results into html format.""" |
| test_rows_header, test_rows = create_test_table(results_dict, cs_base_url) |
| @@ -272,12 +281,22 @@ def results_to_html(results_dict, cs_base_url, bucket, server_url): |
| main_template = JINJA_ENVIRONMENT.get_template( |
| os.path.join('template', 'main.html')) |
| - return main_template.render( # pylint: disable=no-member |
| + |
| + dest = 'html/%s_%s_%s_%s.html' % ( |
| + test_name, builder_name, build_number, |
| + time.strftime('%Y_%m_%d_T%H_%M_%S')) |
| + |
| + result_details_link = '%s/%s/%s' % (server_url, bucket, dest) |
| + |
| + return (main_template.render( # pylint: disable=no-member |
| {'tb_values': [suite_table_values, test_table_values], |
| - 'bucket': bucket, 'server_url': server_url}) |
| + 'bucket': bucket, 'server_url': server_url, |
| + 'feedback_url': feedback_url(result_details_link)}), |
| + dest, result_details_link) |
| -def result_details(json_path, cs_base_url, bucket, server_url): |
| +def result_details(json_path, cs_base_url, bucket, server_url, test_name, |
| + builder_name, build_number): |
| """Get result details from json path and then convert results to html.""" |
| with open(json_path) as json_file: |
| @@ -290,25 +309,21 @@ def result_details(json_path, cs_base_url, bucket, server_url): |
| for testsuite_run in json_object['per_iteration_data']: |
| for test, test_runs in testsuite_run.iteritems(): |
| results_dict[test].extend(test_runs) |
| - return results_to_html(results_dict, cs_base_url, bucket, server_url) |
| + |
| + return results_to_html(results_dict, cs_base_url, bucket, server_url, |
| + test_name, builder_name, build_number) |
| -def upload_to_google_bucket(html, test_name, builder_name, build_number, |
| - bucket, server_url, content_type): |
| +def upload_to_google_bucket(html, bucket, dest, content_type): |
| with tempfile.NamedTemporaryFile(suffix='.html') as temp_file: |
| temp_file.write(html) |
| temp_file.flush() |
| - dest = 'html/%s_%s_%s_%s.html' % ( |
| - test_name, builder_name, build_number, |
| - time.strftime('%Y_%m_%d_T%H_%M_%S')) |
| gsutil_path = os.path.join(BASE_DIR, 'third_party', 'catapult', |
| 'third_party', 'gsutil', 'gsutil.py') |
| subprocess.check_call([ |
| sys.executable, gsutil_path, '-h', "Content-Type:%s" % content_type, |
| 'cp', temp_file.name, 'gs://%s/%s' % (bucket, dest)]) |
| - return '%s/%s/%s' % (server_url, bucket, dest) |
| - |
| def main(): |
| parser = argparse.ArgumentParser() |
| @@ -388,13 +403,14 @@ def main(): |
| if not os.path.exists(json_file): |
| raise IOError('--json-file %s not found.' % json_file) |
| - result_html_string = result_details(json_file, args.cs_base_url, |
| - args.bucket, args.server_url) |
| - result_details_link = upload_to_google_bucket( |
| + # Link to result details presentation page is a part of the page. |
| + result_html_string, dest, result_details_link = result_details( |
| + json_file, args.cs_base_url, args.bucket, args.server_url, |
| + args.test_name, builder_name, build_number) |
| + |
| + upload_to_google_bucket( |
| result_html_string.encode('UTF-8'), |
| - args.test_name, builder_name, |
| - build_number, args.bucket, |
| - args.server_url, args.content_type) |
| + args.bucket, dest, args.content_type) |
| if args.output_json: |
| with open(json_file) as original_json_file: |