OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 import csv | 4 import csv |
5 | 5 |
6 from telemetry.page import page_measurement_results | 6 from telemetry.page import page_measurement_results |
7 | 7 |
8 class CsvPageMeasurementResults( | 8 class CsvPageMeasurementResults( |
9 page_measurement_results.PageMeasurementResults): | 9 page_measurement_results.PageMeasurementResults): |
10 def __init__(self, output_stream=None, output_after_every_page=None): | 10 def __init__(self, output_stream, output_after_every_page=None): |
11 super(CsvPageMeasurementResults, self).__init__() | 11 super(CsvPageMeasurementResults, self).__init__() |
12 if output_stream: | 12 self._results_writer = csv.writer(output_stream) |
13 self._results_writer = csv.writer(output_stream) | |
14 self._did_output_header = False | 13 self._did_output_header = False |
15 self._header_names_written_to_writer = None | 14 self._header_names_written_to_writer = None |
16 self._output_after_every_page = output_after_every_page | 15 self._output_after_every_page = output_after_every_page |
17 | 16 |
18 def DidMeasurePage(self): | 17 def DidMeasurePage(self): |
19 assert self.values_for_current_page, 'Failed to call WillMeasurePage' | 18 assert self.values_for_current_page, 'Failed to call WillMeasurePage' |
20 | 19 |
21 if (not self.values_for_current_page.values or | 20 if (not self.values_for_current_page.values or |
22 not self._output_after_every_page): | 21 not self._output_after_every_page): |
23 # Do not output if no results were added on this page or if output flag | 22 # Do not output if no results were added on this page or if output flag |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 | 79 |
81 def _OutputValuesForPage(self, page_values): | 80 def _OutputValuesForPage(self, page_values): |
82 row = [page_values.page.display_url] | 81 row = [page_values.page.display_url] |
83 for measurement_name in self._header_names_written_to_writer: | 82 for measurement_name in self._header_names_written_to_writer: |
84 value = page_values.FindValueByMeasurementName(measurement_name) | 83 value = page_values.FindValueByMeasurementName(measurement_name) |
85 if value: | 84 if value: |
86 row.append('%s' % value.output_value) | 85 row.append('%s' % value.output_value) |
87 else: | 86 else: |
88 row.append('-') | 87 row.append('-') |
89 self._results_writer.writerow(row) | 88 self._results_writer.writerow(row) |
OLD | NEW |