Index: tools/telemetry/telemetry/results/json_output_formatter.py |
diff --git a/tools/telemetry/telemetry/results/json_output_formatter.py b/tools/telemetry/telemetry/results/json_output_formatter.py |
index bf23ede9b8452d039c828b6e99720b65c74370b9..96136f5d4340b83b9b7dd347da2c39b793d81bc3 100644 |
--- a/tools/telemetry/telemetry/results/json_output_formatter.py |
+++ b/tools/telemetry/telemetry/results/json_output_formatter.py |
@@ -2,9 +2,12 @@ |
# Use of this source code is governed by a BSD-style license that can be |
# found in the LICENSE file. |
+import itertools |
import json |
+import shutil |
from telemetry.results import output_formatter |
+from telemetry.value import trace |
def ResultsAsDict(page_test_results, benchmark_metadata): |
"""Takes PageTestResults to a dict serializable to JSON. |
@@ -25,11 +28,27 @@ def ResultsAsDict(page_test_results, benchmark_metadata): |
page_test_results.all_summary_values], |
'per_page_values': [v.AsDict() for v in |
page_test_results.all_page_specific_values], |
- 'pages': {p.id: p.AsDict() for p in _GetAllPages(page_test_results)} |
+ 'pages': {p.id: p.AsDict() for p in _GetAllPages(page_test_results)}, |
} |
+ trace_values = _AllTraceValues(page_test_results) |
nduca
2014/09/16 20:56:24
er, why not just all filehandles? e.g. you just do
|
+ files = dict() |
+ for tv in trace_values: |
+ fh = tv.GetAssociatedFileHandle() |
+ name = str(fh.id) + '.json' |
+ shutil.copy(fh.GetRelPath(), name) |
+ files[fh.id] = name |
+ |
+ if files: |
+ result_dict['files'] = files |
+ |
return result_dict |
+def _AllTraceValues(page_test_results): |
+ values = itertools.chain(page_test_results.all_summary_values, |
+ page_test_results.all_page_specific_values) |
+ return [v for v in values if isinstance(v, trace.TraceValue)] |
+ |
def _GetAllPages(page_test_results): |
pages = set(page_run.page for page_run in |
page_test_results.all_page_runs) |