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 4298587a603c416c0f0644c32739f4bf227b1b1d..bf23ede9b8452d039c828b6e99720b65c74370b9 100644 |
--- a/tools/telemetry/telemetry/results/json_output_formatter.py |
+++ b/tools/telemetry/telemetry/results/json_output_formatter.py |
@@ -6,16 +6,26 @@ import json |
from telemetry.results import output_formatter |
- |
-def ResultsAsDict(page_test_results, metadata): |
+def ResultsAsDict(page_test_results, benchmark_metadata): |
+ """Takes PageTestResults to a dict serializable to JSON. |
+ |
+ To serialize results as JSON we first convert them to a dict that can be |
+ serialized by the json module. It also requires a benchmark_metadat object |
+ for metadata to be integrated into the results (currently the benchmark |
+ name). |
+ |
+ Args: |
+ page_test_results: a PageTestResults object |
+ benchmark_metadata: a benchmark.BenchmarkMetadata object |
+ """ |
result_dict = { |
'format_version': '0.2', |
- 'benchmark_name': metadata.name, |
+ 'benchmark_name': benchmark_metadata.name, |
'summary_values': [v.AsDict() for v in |
page_test_results.all_summary_values], |
'per_page_values': [v.AsDict() for v in |
page_test_results.all_page_specific_values], |
- 'pages': dict((p.id, p.AsDict()) for p in _GetAllPages(page_test_results)) |
+ 'pages': {p.id: p.AsDict() for p in _GetAllPages(page_test_results)} |
} |
return result_dict |
@@ -26,15 +36,15 @@ def _GetAllPages(page_test_results): |
return pages |
class JsonOutputFormatter(output_formatter.OutputFormatter): |
- def __init__(self, output_stream, metadata): |
+ def __init__(self, output_stream, benchmark_metadata): |
super(JsonOutputFormatter, self).__init__(output_stream) |
- self._metadata = metadata |
+ self._benchmark_metadata = benchmark_metadata |
@property |
- def metadata(self): |
- return self._metadata |
+ def benchmark_metadata(self): |
+ return self._benchmark_metadata |
def Format(self, page_test_results): |
- json.dump(ResultsAsDict(page_test_results, self.metadata), |
+ json.dump(ResultsAsDict(page_test_results, self.benchmark_metadata), |
self.output_stream) |
self.output_stream.write('\n') |