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

Unified Diff: tools/telemetry/telemetry/results/json_output_formatter.py

Issue 439613003: Add Chart JSON processing to Telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address Chris's comments Created 6 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: 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')

Powered by Google App Engine
This is Rietveld 408576698