Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(140)

Unified Diff: build/android/pylib/results/presentation/test_results_presentation.py

Issue 2933993002: Add local results details pages.
Patch Set: Fix some of Johns comments. Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.')
« no previous file with comments | « build/android/pylib/results/presentation/template/main.html ('k') | build/android/pylib/utils/google_storage_helper.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698