| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 import os | 5 import os |
| 6 import StringIO | 6 import StringIO |
| 7 import unittest | 7 import unittest |
| 8 | 8 |
| 9 from telemetry import page as page_module | 9 from telemetry import page as page_module |
| 10 from telemetry.page import page_set | 10 from telemetry.page import page_set |
| 11 from telemetry.results import csv_output_formatter | 11 from telemetry.results import csv_output_formatter |
| 12 from telemetry.results import page_test_results | 12 from telemetry.results import page_test_results |
| 13 from telemetry.value import histogram | 13 from telemetry.value import histogram |
| 14 from telemetry.value import improvement_direction |
| 14 from telemetry.value import scalar | 15 from telemetry.value import scalar |
| 15 | 16 |
| 16 | 17 |
| 17 def _MakePageSet(): | 18 def _MakePageSet(): |
| 18 ps = page_set.PageSet(file_path=os.path.dirname(__file__)) | 19 ps = page_set.PageSet(file_path=os.path.dirname(__file__)) |
| 19 ps.AddUserStory(page_module.Page('http://www.foo.com/', ps, ps.base_dir)) | 20 ps.AddUserStory(page_module.Page('http://www.foo.com/', ps, ps.base_dir)) |
| 20 ps.AddUserStory(page_module.Page('http://www.bar.com/', ps, ps.base_dir)) | 21 ps.AddUserStory(page_module.Page('http://www.bar.com/', ps, ps.base_dir)) |
| 21 return ps | 22 return ps |
| 22 | 23 |
| 23 | 24 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 38 return rows[0] | 39 return rows[0] |
| 39 | 40 |
| 40 @property | 41 @property |
| 41 def output_data_rows(self): | 42 def output_data_rows(self): |
| 42 rows = list(csv.reader(self.lines)) | 43 rows = list(csv.reader(self.lines)) |
| 43 return rows[1:] | 44 return rows[1:] |
| 44 | 45 |
| 45 def test_with_no_results_on_second_run(self): | 46 def test_with_no_results_on_second_run(self): |
| 46 results = page_test_results.PageTestResults() | 47 results = page_test_results.PageTestResults() |
| 47 results.WillRunPage(self._page_set[0]) | 48 results.WillRunPage(self._page_set[0]) |
| 48 results.AddValue(scalar.ScalarValue(self._page_set[0], 'foo', 'seconds', 3)) | 49 results.AddValue(scalar.ScalarValue( |
| 50 self._page_set[0], 'foo', 'seconds', 3, |
| 51 improvement_direction=improvement_direction.DOWN)) |
| 49 results.DidRunPage(self._page_set[0]) | 52 results.DidRunPage(self._page_set[0]) |
| 50 | 53 |
| 51 results.WillRunPage(self._page_set[1]) | 54 results.WillRunPage(self._page_set[1]) |
| 52 results.DidRunPage(self._page_set[1]) | 55 results.DidRunPage(self._page_set[1]) |
| 53 | 56 |
| 54 self._formatter.Format(results) | 57 self._formatter.Format(results) |
| 55 | 58 |
| 56 self.assertEqual(['page_name', 'foo (seconds)'], self.output_header_row) | 59 self.assertEqual(['page_name', 'foo (seconds)'], self.output_header_row) |
| 57 # TODO(chrishenry): Is this really the right behavior? Should this | 60 # TODO(chrishenry): Is this really the right behavior? Should this |
| 58 # not output a second row with '-' as its results? | 61 # not output a second row with '-' as its results? |
| 59 expected = [[self._page_set[0].url, '3.0']] | 62 expected = [[self._page_set[0].url, '3.0']] |
| 60 self.assertEqual(expected, self.output_data_rows) | 63 self.assertEqual(expected, self.output_data_rows) |
| 61 | 64 |
| 62 def test_fewer_results_on_second_run(self): | 65 def test_fewer_results_on_second_run(self): |
| 63 results = page_test_results.PageTestResults() | 66 results = page_test_results.PageTestResults() |
| 64 results.WillRunPage(self._page_set[0]) | 67 results.WillRunPage(self._page_set[0]) |
| 65 results.AddValue(scalar.ScalarValue(self._page_set[0], 'foo', 'seconds', 3)) | 68 results.AddValue(scalar.ScalarValue( |
| 66 results.AddValue(scalar.ScalarValue(self._page_set[0], 'bar', 'seconds', 4)) | 69 self._page_set[0], 'foo', 'seconds', 3, |
| 70 improvement_direction=improvement_direction.DOWN)) |
| 71 results.AddValue(scalar.ScalarValue( |
| 72 self._page_set[0], 'bar', 'seconds', 4, |
| 73 improvement_direction=improvement_direction.DOWN)) |
| 67 results.DidRunPage(self._page_set[0]) | 74 results.DidRunPage(self._page_set[0]) |
| 68 | 75 |
| 69 results.WillRunPage(self._page_set[1]) | 76 results.WillRunPage(self._page_set[1]) |
| 70 results.AddValue(scalar.ScalarValue(self._page_set[1], 'bar', 'seconds', 5)) | 77 results.AddValue(scalar.ScalarValue( |
| 78 self._page_set[1], 'bar', 'seconds', 5, |
| 79 improvement_direction=improvement_direction.DOWN)) |
| 71 results.DidRunPage(self._page_set[1]) | 80 results.DidRunPage(self._page_set[1]) |
| 72 | 81 |
| 73 self._formatter.Format(results) | 82 self._formatter.Format(results) |
| 74 self.assertEqual(['page_name', 'bar (seconds)', 'foo (seconds)'], | 83 self.assertEqual(['page_name', 'bar (seconds)', 'foo (seconds)'], |
| 75 self.output_header_row) | 84 self.output_header_row) |
| 76 expected = [[self._page_set[0].url, '4.0', '3.0'], | 85 expected = [[self._page_set[0].url, '4.0', '3.0'], |
| 77 [self._page_set[1].url, '5.0', '-']] | 86 [self._page_set[1].url, '5.0', '-']] |
| 78 self.assertEqual(expected, self.output_data_rows) | 87 self.assertEqual(expected, self.output_data_rows) |
| 79 | 88 |
| 80 def test_with_output_at_print_summary_time(self): | 89 def test_with_output_at_print_summary_time(self): |
| 81 results = page_test_results.PageTestResults() | 90 results = page_test_results.PageTestResults() |
| 82 results.WillRunPage(self._page_set[0]) | 91 results.WillRunPage(self._page_set[0]) |
| 83 results.AddValue(scalar.ScalarValue(self._page_set[0], 'foo', 'seconds', 3)) | 92 results.AddValue(scalar.ScalarValue( |
| 93 self._page_set[0], 'foo', 'seconds', 3, |
| 94 improvement_direction=improvement_direction.DOWN)) |
| 84 results.DidRunPage(self._page_set[0]) | 95 results.DidRunPage(self._page_set[0]) |
| 85 | 96 |
| 86 results.WillRunPage(self._page_set[1]) | 97 results.WillRunPage(self._page_set[1]) |
| 87 results.AddValue(scalar.ScalarValue(self._page_set[1], 'bar', 'seconds', 4)) | 98 results.AddValue(scalar.ScalarValue( |
| 99 self._page_set[1], 'bar', 'seconds', 4, |
| 100 improvement_direction=improvement_direction.DOWN)) |
| 88 results.DidRunPage(self._page_set[1]) | 101 results.DidRunPage(self._page_set[1]) |
| 89 | 102 |
| 90 self._formatter.Format(results) | 103 self._formatter.Format(results) |
| 91 | 104 |
| 92 self.assertEqual( | 105 self.assertEqual( |
| 93 self.output_header_row, | 106 self.output_header_row, |
| 94 ['page_name', 'bar (seconds)', 'foo (seconds)']) | 107 ['page_name', 'bar (seconds)', 'foo (seconds)']) |
| 95 | 108 |
| 96 expected = [[self._page_set[0].display_name, '-', '3.0'], | 109 expected = [[self._page_set[0].display_name, '-', '3.0'], |
| 97 [self._page_set[1].display_name, '4.0', '-']] | 110 [self._page_set[1].display_name, '4.0', '-']] |
| 98 self.assertEqual(expected, self.output_data_rows) | 111 self.assertEqual(expected, self.output_data_rows) |
| 99 | 112 |
| 100 def test_histogram(self): | 113 def test_histogram(self): |
| 101 results = page_test_results.PageTestResults() | 114 results = page_test_results.PageTestResults() |
| 102 results.WillRunPage(self._page_set[0]) | 115 results.WillRunPage(self._page_set[0]) |
| 103 results.AddValue(histogram.HistogramValue( | 116 results.AddValue(histogram.HistogramValue( |
| 104 self._page_set[0], 'a', '', | 117 self._page_set[0], 'a', '', |
| 105 raw_value_json='{"buckets": [{"low": 1, "high": 2, "count": 1}]}')) | 118 raw_value_json='{"buckets": [{"low": 1, "high": 2, "count": 1}]}', |
| 119 improvement_direction=improvement_direction.UP)) |
| 106 results.DidRunPage(self._page_set[0]) | 120 results.DidRunPage(self._page_set[0]) |
| 107 | 121 |
| 108 results.WillRunPage(self._page_set[1]) | 122 results.WillRunPage(self._page_set[1]) |
| 109 results.AddValue(histogram.HistogramValue( | 123 results.AddValue(histogram.HistogramValue( |
| 110 self._page_set[1], 'a', '', | 124 self._page_set[1], 'a', '', |
| 111 raw_value_json='{"buckets": [{"low": 2, "high": 3, "count": 1}]}')) | 125 raw_value_json='{"buckets": [{"low": 2, "high": 3, "count": 1}]}', |
| 126 improvement_direction=improvement_direction.UP)) |
| 112 results.DidRunPage(self._page_set[1]) | 127 results.DidRunPage(self._page_set[1]) |
| 113 | 128 |
| 114 self._formatter.Format(results) | 129 self._formatter.Format(results) |
| 115 | 130 |
| 116 self.assertEqual( | 131 self.assertEqual( |
| 117 self.output_header_row, | 132 self.output_header_row, |
| 118 ['page_name', 'a ()']) | 133 ['page_name', 'a ()']) |
| 119 self.assertEqual( | 134 self.assertEqual( |
| 120 self.output_data_rows, | 135 self.output_data_rows, |
| 121 [[self._page_set[0].display_name, '1.5'], | 136 [[self._page_set[0].display_name, '1.5'], |
| 122 [self._page_set[1].display_name, '2.5']]) | 137 [self._page_set[1].display_name, '2.5']]) |
| OLD | NEW |