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 cb51590e3cf7878eec9f2321351fb2a51a3dc938..218f2aee0893463a0b7a3f01de37cf3e3ea24e96 100755 |
--- a/build/android/pylib/results/presentation/test_results_presentation.py |
+++ b/build/android/pylib/results/presentation/test_results_presentation.py |
@@ -275,11 +275,15 @@ def feedback_url(result_details_link): |
def results_to_html(results_dict, cs_base_url, bucket, test_name, |
- builder_name, build_number): |
- """Convert list of test results into html format.""" |
+ builder_name, build_number, local_output): |
+ """Convert list of test results into html format. |
- test_rows_header, test_rows = create_test_table(results_dict, cs_base_url, |
- test_name) |
+ Args: |
+ local_output: Whether this results file is uploaded to Google Storage or |
+ just a local file. |
+ """ |
+ test_rows_header, test_rows = create_test_table( |
+ results_dict, cs_base_url, test_name) |
suite_rows_header, suite_rows, suite_row_footer = create_suite_table( |
results_dict) |
@@ -298,21 +302,34 @@ def results_to_html(results_dict, cs_base_url, bucket, test_name, |
main_template = JINJA_ENVIRONMENT.get_template( |
os.path.join('template', 'main.html')) |
- dest = google_storage_helper.unique_name( |
- '%s_%s_%s' % (test_name, builder_name, build_number)) |
- |
- result_details_link = google_storage_helper.get_url_link( |
- dest, '%s/html' % bucket) |
- |
- return (main_template.render( # pylint: disable=no-member |
- {'tb_values': [suite_table_values, test_table_values], |
- 'feedback_url': feedback_url(result_details_link) |
- }), dest, result_details_link) |
+ if local_output: |
+ html_render = main_template.render( # pylint: disable=no-member |
+ { |
+ 'tb_values': [suite_table_values, test_table_values] |
+ }) |
+ return (html_render, None, None) |
+ else: |
+ dest = google_storage_helper.unique_name( |
+ '%s_%s_%s' % (test_name, builder_name, build_number)) |
+ result_details_link = google_storage_helper.get_url_link( |
+ dest, '%s/html' % bucket) |
+ html_render = main_template.render( # pylint: disable=no-member |
+ { |
+ 'tb_values': [suite_table_values, test_table_values], |
+ 'feedback_url': feedback_url(result_details_link), |
+ }) |
+ return (html_render, dest, result_details_link) |
+ |
+ |
+def result_details(json_path, test_name, cs_base_url, bucket=None, |
+ builder_name=None, build_number=None, local_output=False): |
+ """Get result details from json path and then convert results to html. |
-def result_details(json_path, cs_base_url, bucket, test_name, |
- builder_name, build_number): |
- """Get result details from json path and then convert results to html.""" |
+ Args: |
+ local_output: Whether this results file is uploaded to Google Storage or |
+ just a local file. |
+ """ |
with open(json_path) as json_file: |
json_object = json.loads(json_file.read()) |
@@ -324,8 +341,8 @@ def result_details(json_path, cs_base_url, bucket, test_name, |
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, |
- test_name, builder_name, build_number) |
+ return results_to_html(results_dict, cs_base_url, bucket, test_name, |
+ builder_name, build_number, local_output) |
def upload_to_google_bucket(html, bucket, dest): |
@@ -352,18 +369,18 @@ def main(): |
required=True) |
parser.add_argument( |
'-o', '--output-json', |
- help='(Swarming Merge Script API)' |
- ' Output JSON file to create.') |
+ help='(Swarming Merge Script API) ' |
+ 'Output JSON file to create.') |
parser.add_argument( |
'--build-properties', |
help='(Swarming Merge Script API) ' |
'Build property JSON file provided by recipes.') |
parser.add_argument( |
'--summary-json', |
- help='(Swarming Merge Script API)' |
- ' Summary of shard state running on swarming.' |
- ' (Output of the swarming.py collect' |
- ' --task-summary-json=XXX command.)') |
+ help='(Swarming Merge Script API) ' |
+ 'Summary of shard state running on swarming. ' |
+ '(Output of the swarming.py collect ' |
+ '--task-summary-json=XXX command.)') |
parser.add_argument( |
'positional', nargs='*', |
help='output.json from shards.') |
@@ -420,13 +437,12 @@ def main(): |
# 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.test_name, builder_name, build_number) |
+ json_file, args.test_name, args.cs_base_url, args.bucket, |
+ builder_name, build_number) |
result_details_link_2 = upload_to_google_bucket( |
result_html_string.encode('UTF-8'), |
args.bucket, dest) |
- |
assert result_details_link == result_details_link_2, ( |
'Result details link do not match. The link returned by get_url_link' |
' should be the same as that returned by upload.') |