| 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 | 4 |
| 5 import os | 5 import os |
| 6 import unittest | 6 import unittest |
| 7 | 7 |
| 8 from telemetry import story | 8 from telemetry import story |
| 9 from telemetry.internal.results import base_test_results_unittest | 9 from telemetry.internal.results import base_test_results_unittest |
| 10 from telemetry.internal.results import page_test_results | 10 from telemetry.internal.results import page_test_results |
| 11 from telemetry import page as page_module | 11 from telemetry import page as page_module |
| 12 from telemetry.timeline import trace_data | 12 from telemetry.timeline import trace_data |
| 13 from telemetry.value import failure | 13 from telemetry.value import failure |
| 14 from telemetry.value import histogram | 14 from telemetry.value import histogram |
| 15 from telemetry.value import improvement_direction |
| 15 from telemetry.value import scalar | 16 from telemetry.value import scalar |
| 16 from telemetry.value import skip | 17 from telemetry.value import skip |
| 17 from telemetry.value import trace | 18 from telemetry.value import trace |
| 18 | 19 |
| 19 class PageTestResultsTest(base_test_results_unittest.BaseTestResultsUnittest): | 20 class PageTestResultsTest(base_test_results_unittest.BaseTestResultsUnittest): |
| 20 def setUp(self): | 21 def setUp(self): |
| 21 story_set = story.StorySet(base_dir=os.path.dirname(__file__)) | 22 story_set = story.StorySet(base_dir=os.path.dirname(__file__)) |
| 22 story_set.AddStory(page_module.Page("http://www.bar.com/", story_set, story_
set.base_dir)) | 23 story_set.AddStory(page_module.Page("http://www.bar.com/", story_set, story_
set.base_dir)) |
| 23 story_set.AddStory(page_module.Page("http://www.baz.com/", story_set, story_
set.base_dir)) | 24 story_set.AddStory(page_module.Page("http://www.baz.com/", story_set, story_
set.base_dir)) |
| 24 story_set.AddStory(page_module.Page("http://www.foo.com/", story_set, story_
set.base_dir)) | 25 story_set.AddStory(page_module.Page("http://www.foo.com/", story_set, story_
set.base_dir)) |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 self.assertEqual(set([self.pages[0], self.pages[1]]), | 60 self.assertEqual(set([self.pages[0], self.pages[1]]), |
| 60 results.pages_that_succeeded) | 61 results.pages_that_succeeded) |
| 61 | 62 |
| 62 self.assertEqual(2, len(results.all_page_runs)) | 63 self.assertEqual(2, len(results.all_page_runs)) |
| 63 self.assertTrue(results.all_page_runs[0].skipped) | 64 self.assertTrue(results.all_page_runs[0].skipped) |
| 64 self.assertTrue(results.all_page_runs[1].ok) | 65 self.assertTrue(results.all_page_runs[1].ok) |
| 65 | 66 |
| 66 def testBasic(self): | 67 def testBasic(self): |
| 67 results = page_test_results.PageTestResults() | 68 results = page_test_results.PageTestResults() |
| 68 results.WillRunPage(self.pages[0]) | 69 results.WillRunPage(self.pages[0]) |
| 69 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3)) | 70 results.AddValue(scalar.ScalarValue( |
| 71 self.pages[0], 'a', 'seconds', 3, |
| 72 improvement_direction=improvement_direction.UP)) |
| 70 results.DidRunPage(self.pages[0]) | 73 results.DidRunPage(self.pages[0]) |
| 71 | 74 |
| 72 results.WillRunPage(self.pages[1]) | 75 results.WillRunPage(self.pages[1]) |
| 73 results.AddValue(scalar.ScalarValue(self.pages[1], 'a', 'seconds', 3)) | 76 results.AddValue(scalar.ScalarValue( |
| 77 self.pages[1], 'a', 'seconds', 3, |
| 78 improvement_direction=improvement_direction.UP)) |
| 74 results.DidRunPage(self.pages[1]) | 79 results.DidRunPage(self.pages[1]) |
| 75 | 80 |
| 76 results.PrintSummary() | 81 results.PrintSummary() |
| 77 | 82 |
| 78 values = results.FindPageSpecificValuesForPage(self.pages[0], 'a') | 83 values = results.FindPageSpecificValuesForPage(self.pages[0], 'a') |
| 79 self.assertEquals(1, len(values)) | 84 self.assertEquals(1, len(values)) |
| 80 v = values[0] | 85 v = values[0] |
| 81 self.assertEquals(v.name, 'a') | 86 self.assertEquals(v.name, 'a') |
| 82 self.assertEquals(v.page, self.pages[0]) | 87 self.assertEquals(v.page, self.pages[0]) |
| 83 | 88 |
| 84 values = results.FindAllPageSpecificValuesNamed('a') | 89 values = results.FindAllPageSpecificValuesNamed('a') |
| 85 assert len(values) == 2 | 90 assert len(values) == 2 |
| 86 | 91 |
| 87 def testUrlIsInvalidValue(self): | 92 def testUrlIsInvalidValue(self): |
| 88 results = page_test_results.PageTestResults() | 93 results = page_test_results.PageTestResults() |
| 89 results.WillRunPage(self.pages[0]) | 94 results.WillRunPage(self.pages[0]) |
| 90 self.assertRaises( | 95 self.assertRaises( |
| 91 AssertionError, | 96 AssertionError, |
| 92 lambda: results.AddValue(scalar.ScalarValue( | 97 lambda: results.AddValue(scalar.ScalarValue( |
| 93 self.pages[0], 'url', 'string', 'foo'))) | 98 self.pages[0], 'url', 'string', 'foo', |
| 99 improvement_direction=improvement_direction.UP))) |
| 94 | 100 |
| 95 def testAddSummaryValueWithPageSpecified(self): | 101 def testAddSummaryValueWithPageSpecified(self): |
| 96 results = page_test_results.PageTestResults() | 102 results = page_test_results.PageTestResults() |
| 97 results.WillRunPage(self.pages[0]) | 103 results.WillRunPage(self.pages[0]) |
| 98 self.assertRaises( | 104 self.assertRaises( |
| 99 AssertionError, | 105 AssertionError, |
| 100 lambda: results.AddSummaryValue(scalar.ScalarValue(self.pages[0], | 106 lambda: results.AddSummaryValue(scalar.ScalarValue( |
| 101 'a', 'units', 3))) | 107 self.pages[0], 'a', 'units', 3, |
| 108 improvement_direction=improvement_direction.UP))) |
| 102 | 109 |
| 103 def testUnitChange(self): | 110 def testUnitChange(self): |
| 104 results = page_test_results.PageTestResults() | 111 results = page_test_results.PageTestResults() |
| 105 results.WillRunPage(self.pages[0]) | 112 results.WillRunPage(self.pages[0]) |
| 106 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3)) | 113 results.AddValue(scalar.ScalarValue( |
| 114 self.pages[0], 'a', 'seconds', 3, |
| 115 improvement_direction=improvement_direction.UP)) |
| 107 results.DidRunPage(self.pages[0]) | 116 results.DidRunPage(self.pages[0]) |
| 108 | 117 |
| 109 results.WillRunPage(self.pages[1]) | 118 results.WillRunPage(self.pages[1]) |
| 110 self.assertRaises( | 119 self.assertRaises( |
| 111 AssertionError, | 120 AssertionError, |
| 112 lambda: results.AddValue(scalar.ScalarValue( | 121 lambda: results.AddValue(scalar.ScalarValue( |
| 113 self.pages[1], 'a', 'foobgrobbers', 3))) | 122 self.pages[1], 'a', 'foobgrobbers', 3, |
| 123 improvement_direction=improvement_direction.UP))) |
| 114 | 124 |
| 115 def testTypeChange(self): | 125 def testTypeChange(self): |
| 116 results = page_test_results.PageTestResults() | 126 results = page_test_results.PageTestResults() |
| 117 results.WillRunPage(self.pages[0]) | 127 results.WillRunPage(self.pages[0]) |
| 118 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3)) | 128 results.AddValue(scalar.ScalarValue( |
| 129 self.pages[0], 'a', 'seconds', 3, |
| 130 improvement_direction=improvement_direction.UP)) |
| 119 results.DidRunPage(self.pages[0]) | 131 results.DidRunPage(self.pages[0]) |
| 120 | 132 |
| 121 results.WillRunPage(self.pages[1]) | 133 results.WillRunPage(self.pages[1]) |
| 122 self.assertRaises( | 134 self.assertRaises( |
| 123 AssertionError, | 135 AssertionError, |
| 124 lambda: results.AddValue(histogram.HistogramValue( | 136 lambda: results.AddValue(histogram.HistogramValue( |
| 125 self.pages[1], 'a', 'seconds', | 137 self.pages[1], 'a', 'seconds', |
| 126 raw_value_json='{"buckets": [{"low": 1, "high": 2, "count": 1}]}'))) | 138 raw_value_json='{"buckets": [{"low": 1, "high": 2, "count": 1}]}', |
| 139 improvement_direction=improvement_direction.UP))) |
| 127 | 140 |
| 128 def testGetPagesThatSucceededAllPagesFail(self): | 141 def testGetPagesThatSucceededAllPagesFail(self): |
| 129 results = page_test_results.PageTestResults() | 142 results = page_test_results.PageTestResults() |
| 130 results.WillRunPage(self.pages[0]) | 143 results.WillRunPage(self.pages[0]) |
| 131 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3)) | 144 results.AddValue(scalar.ScalarValue( |
| 145 self.pages[0], 'a', 'seconds', 3, |
| 146 improvement_direction=improvement_direction.UP)) |
| 132 results.AddValue(failure.FailureValue.FromMessage(self.pages[0], 'message')) | 147 results.AddValue(failure.FailureValue.FromMessage(self.pages[0], 'message')) |
| 133 results.DidRunPage(self.pages[0]) | 148 results.DidRunPage(self.pages[0]) |
| 134 | 149 |
| 135 results.WillRunPage(self.pages[1]) | 150 results.WillRunPage(self.pages[1]) |
| 136 results.AddValue(scalar.ScalarValue(self.pages[1], 'a', 'seconds', 7)) | 151 results.AddValue(scalar.ScalarValue( |
| 152 self.pages[1], 'a', 'seconds', 7, |
| 153 improvement_direction=improvement_direction.UP)) |
| 137 results.AddValue(failure.FailureValue.FromMessage(self.pages[1], 'message')) | 154 results.AddValue(failure.FailureValue.FromMessage(self.pages[1], 'message')) |
| 138 results.DidRunPage(self.pages[1]) | 155 results.DidRunPage(self.pages[1]) |
| 139 | 156 |
| 140 results.PrintSummary() | 157 results.PrintSummary() |
| 141 self.assertEquals(0, len(results.pages_that_succeeded)) | 158 self.assertEquals(0, len(results.pages_that_succeeded)) |
| 142 | 159 |
| 143 def testGetSuccessfulPageValuesMergedNoFailures(self): | 160 def testGetSuccessfulPageValuesMergedNoFailures(self): |
| 144 results = page_test_results.PageTestResults() | 161 results = page_test_results.PageTestResults() |
| 145 results.WillRunPage(self.pages[0]) | 162 results.WillRunPage(self.pages[0]) |
| 146 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3)) | 163 results.AddValue(scalar.ScalarValue( |
| 164 self.pages[0], 'a', 'seconds', 3, |
| 165 improvement_direction=improvement_direction.UP)) |
| 147 self.assertEquals(1, len(results.all_page_specific_values)) | 166 self.assertEquals(1, len(results.all_page_specific_values)) |
| 148 results.DidRunPage(self.pages[0]) | 167 results.DidRunPage(self.pages[0]) |
| 149 | 168 |
| 150 def testGetAllValuesForSuccessfulPages(self): | 169 def testGetAllValuesForSuccessfulPages(self): |
| 151 results = page_test_results.PageTestResults() | 170 results = page_test_results.PageTestResults() |
| 152 results.WillRunPage(self.pages[0]) | 171 results.WillRunPage(self.pages[0]) |
| 153 value1 = scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3) | 172 value1 = scalar.ScalarValue( |
| 173 self.pages[0], 'a', 'seconds', 3, |
| 174 improvement_direction=improvement_direction.UP) |
| 154 results.AddValue(value1) | 175 results.AddValue(value1) |
| 155 results.DidRunPage(self.pages[0]) | 176 results.DidRunPage(self.pages[0]) |
| 156 | 177 |
| 157 results.WillRunPage(self.pages[1]) | 178 results.WillRunPage(self.pages[1]) |
| 158 value2 = scalar.ScalarValue(self.pages[1], 'a', 'seconds', 3) | 179 value2 = scalar.ScalarValue( |
| 180 self.pages[1], 'a', 'seconds', 3, |
| 181 improvement_direction=improvement_direction.UP) |
| 159 results.AddValue(value2) | 182 results.AddValue(value2) |
| 160 results.DidRunPage(self.pages[1]) | 183 results.DidRunPage(self.pages[1]) |
| 161 | 184 |
| 162 results.WillRunPage(self.pages[2]) | 185 results.WillRunPage(self.pages[2]) |
| 163 value3 = scalar.ScalarValue(self.pages[2], 'a', 'seconds', 3) | 186 value3 = scalar.ScalarValue( |
| 187 self.pages[2], 'a', 'seconds', 3, |
| 188 improvement_direction=improvement_direction.UP) |
| 164 results.AddValue(value3) | 189 results.AddValue(value3) |
| 165 results.DidRunPage(self.pages[2]) | 190 results.DidRunPage(self.pages[2]) |
| 166 | 191 |
| 167 self.assertEquals( | 192 self.assertEquals( |
| 168 [value1, value2, value3], results.all_page_specific_values) | 193 [value1, value2, value3], results.all_page_specific_values) |
| 169 | 194 |
| 170 def testGetAllValuesForSuccessfulPagesOnePageFails(self): | 195 def testGetAllValuesForSuccessfulPagesOnePageFails(self): |
| 171 results = page_test_results.PageTestResults() | 196 results = page_test_results.PageTestResults() |
| 172 results.WillRunPage(self.pages[0]) | 197 results.WillRunPage(self.pages[0]) |
| 173 value1 = scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3) | 198 value1 = scalar.ScalarValue( |
| 199 self.pages[0], 'a', 'seconds', 3, |
| 200 improvement_direction=improvement_direction.UP) |
| 174 results.AddValue(value1) | 201 results.AddValue(value1) |
| 175 results.DidRunPage(self.pages[0]) | 202 results.DidRunPage(self.pages[0]) |
| 176 | 203 |
| 177 results.WillRunPage(self.pages[1]) | 204 results.WillRunPage(self.pages[1]) |
| 178 value2 = failure.FailureValue.FromMessage(self.pages[1], 'Failure') | 205 value2 = failure.FailureValue.FromMessage(self.pages[1], 'Failure') |
| 179 results.AddValue(value2) | 206 results.AddValue(value2) |
| 180 results.DidRunPage(self.pages[1]) | 207 results.DidRunPage(self.pages[1]) |
| 181 | 208 |
| 182 results.WillRunPage(self.pages[2]) | 209 results.WillRunPage(self.pages[2]) |
| 183 value3 = scalar.ScalarValue(self.pages[2], 'a', 'seconds', 3) | 210 value3 = scalar.ScalarValue( |
| 211 self.pages[2], 'a', 'seconds', 3, |
| 212 improvement_direction=improvement_direction.UP) |
| 184 results.AddValue(value3) | 213 results.AddValue(value3) |
| 185 results.DidRunPage(self.pages[2]) | 214 results.DidRunPage(self.pages[2]) |
| 186 | 215 |
| 187 self.assertEquals( | 216 self.assertEquals( |
| 188 [value1, value2, value3], results.all_page_specific_values) | 217 [value1, value2, value3], results.all_page_specific_values) |
| 189 | 218 |
| 190 def testFindValues(self): | 219 def testFindValues(self): |
| 191 results = page_test_results.PageTestResults() | 220 results = page_test_results.PageTestResults() |
| 192 results.WillRunPage(self.pages[0]) | 221 results.WillRunPage(self.pages[0]) |
| 193 v0 = scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3) | 222 v0 = scalar.ScalarValue( |
| 223 self.pages[0], 'a', 'seconds', 3, |
| 224 improvement_direction=improvement_direction.UP) |
| 194 results.AddValue(v0) | 225 results.AddValue(v0) |
| 195 v1 = scalar.ScalarValue(self.pages[0], 'a', 'seconds', 4) | 226 v1 = scalar.ScalarValue( |
| 227 self.pages[0], 'a', 'seconds', 4, |
| 228 improvement_direction=improvement_direction.UP) |
| 196 results.AddValue(v1) | 229 results.AddValue(v1) |
| 197 results.DidRunPage(self.pages[1]) | 230 results.DidRunPage(self.pages[1]) |
| 198 | 231 |
| 199 values = results.FindValues(lambda v: v.value == 3) | 232 values = results.FindValues(lambda v: v.value == 3) |
| 200 self.assertEquals([v0], values) | 233 self.assertEquals([v0], values) |
| 201 | 234 |
| 202 def testValueWithTIRLabel(self): | 235 def testValueWithTIRLabel(self): |
| 203 results = page_test_results.PageTestResults() | 236 results = page_test_results.PageTestResults() |
| 204 results.WillRunPage(self.pages[0]) | 237 results.WillRunPage(self.pages[0]) |
| 205 v0 = scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3, tir_label='foo') | 238 v0 = scalar.ScalarValue( |
| 239 self.pages[0], 'a', 'seconds', 3, tir_label='foo', |
| 240 improvement_direction=improvement_direction.UP) |
| 206 results.AddValue(v0) | 241 results.AddValue(v0) |
| 207 v1 = scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3, tir_label='bar') | 242 v1 = scalar.ScalarValue( |
| 243 self.pages[0], 'a', 'seconds', 3, tir_label='bar', |
| 244 improvement_direction=improvement_direction.UP) |
| 208 results.AddValue(v1) | 245 results.AddValue(v1) |
| 209 results.DidRunPage(self.pages[0]) | 246 results.DidRunPage(self.pages[0]) |
| 210 | 247 |
| 211 values = results.FindAllPageSpecificValuesFromIRNamed('foo', 'a') | 248 values = results.FindAllPageSpecificValuesFromIRNamed('foo', 'a') |
| 212 self.assertEquals([v0], values) | 249 self.assertEquals([v0], values) |
| 213 | 250 |
| 214 def testTraceValue(self): | 251 def testTraceValue(self): |
| 215 results = page_test_results.PageTestResults() | 252 results = page_test_results.PageTestResults() |
| 216 results.WillRunPage(self.pages[0]) | 253 results.WillRunPage(self.pages[0]) |
| 217 results.AddValue(trace.TraceValue(None, trace_data.TraceData({'test' : 1}))) | 254 results.AddValue(trace.TraceValue(None, trace_data.TraceData({'test' : 1}))) |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 @property | 309 @property |
| 273 def pages(self): | 310 def pages(self): |
| 274 return self.story_set.stories | 311 return self.story_set.stories |
| 275 | 312 |
| 276 def testFilterValue(self): | 313 def testFilterValue(self): |
| 277 def AcceptValueNamed_a(value, _): | 314 def AcceptValueNamed_a(value, _): |
| 278 return value.name == 'a' | 315 return value.name == 'a' |
| 279 results = page_test_results.PageTestResults( | 316 results = page_test_results.PageTestResults( |
| 280 value_can_be_added_predicate=AcceptValueNamed_a) | 317 value_can_be_added_predicate=AcceptValueNamed_a) |
| 281 results.WillRunPage(self.pages[0]) | 318 results.WillRunPage(self.pages[0]) |
| 282 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3)) | 319 results.AddValue(scalar.ScalarValue( |
| 283 results.AddValue(scalar.ScalarValue(self.pages[0], 'b', 'seconds', 3)) | 320 self.pages[0], 'a', 'seconds', 3, |
| 321 improvement_direction=improvement_direction.UP)) |
| 322 results.AddValue(scalar.ScalarValue( |
| 323 self.pages[0], 'b', 'seconds', 3, |
| 324 improvement_direction=improvement_direction.UP)) |
| 284 results.DidRunPage(self.pages[0]) | 325 results.DidRunPage(self.pages[0]) |
| 285 | 326 |
| 286 results.WillRunPage(self.pages[1]) | 327 results.WillRunPage(self.pages[1]) |
| 287 results.AddValue(scalar.ScalarValue(self.pages[1], 'a', 'seconds', 3)) | 328 results.AddValue(scalar.ScalarValue( |
| 288 results.AddValue(scalar.ScalarValue(self.pages[1], 'd', 'seconds', 3)) | 329 self.pages[1], 'a', 'seconds', 3, |
| 330 improvement_direction=improvement_direction.UP)) |
| 331 results.AddValue(scalar.ScalarValue( |
| 332 self.pages[1], 'd', 'seconds', 3, |
| 333 improvement_direction=improvement_direction.UP)) |
| 289 results.DidRunPage(self.pages[1]) | 334 results.DidRunPage(self.pages[1]) |
| 290 results.PrintSummary() | 335 results.PrintSummary() |
| 291 self.assertEquals( | 336 self.assertEquals( |
| 292 [('a', 'http://www.foo.com/'), ('a', 'http://www.bar.com/')], | 337 [('a', 'http://www.foo.com/'), ('a', 'http://www.bar.com/')], |
| 293 [(v.name, v.page.url) for v in results.all_page_specific_values]) | 338 [(v.name, v.page.url) for v in results.all_page_specific_values]) |
| 294 | 339 |
| 295 def testFilterIsFirstResult(self): | 340 def testFilterIsFirstResult(self): |
| 296 def AcceptSecondValues(_, is_first_result): | 341 def AcceptSecondValues(_, is_first_result): |
| 297 return not is_first_result | 342 return not is_first_result |
| 298 results = page_test_results.PageTestResults( | 343 results = page_test_results.PageTestResults( |
| 299 value_can_be_added_predicate=AcceptSecondValues) | 344 value_can_be_added_predicate=AcceptSecondValues) |
| 300 | 345 |
| 301 # First results (filtered out) | 346 # First results (filtered out) |
| 302 results.WillRunPage(self.pages[0]) | 347 results.WillRunPage(self.pages[0]) |
| 303 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 7)) | 348 results.AddValue(scalar.ScalarValue( |
| 304 results.AddValue(scalar.ScalarValue(self.pages[0], 'b', 'seconds', 8)) | 349 self.pages[0], 'a', 'seconds', 7, |
| 350 improvement_direction=improvement_direction.UP)) |
| 351 results.AddValue(scalar.ScalarValue( |
| 352 self.pages[0], 'b', 'seconds', 8, |
| 353 improvement_direction=improvement_direction.UP)) |
| 305 results.DidRunPage(self.pages[0]) | 354 results.DidRunPage(self.pages[0]) |
| 306 results.WillRunPage(self.pages[1]) | 355 results.WillRunPage(self.pages[1]) |
| 307 results.AddValue(scalar.ScalarValue(self.pages[1], 'a', 'seconds', 5)) | 356 results.AddValue(scalar.ScalarValue( |
| 308 results.AddValue(scalar.ScalarValue(self.pages[1], 'd', 'seconds', 6)) | 357 self.pages[1], 'a', 'seconds', 5, |
| 358 improvement_direction=improvement_direction.UP)) |
| 359 results.AddValue(scalar.ScalarValue( |
| 360 self.pages[1], 'd', 'seconds', 6, |
| 361 improvement_direction=improvement_direction.UP)) |
| 309 results.DidRunPage(self.pages[1]) | 362 results.DidRunPage(self.pages[1]) |
| 310 | 363 |
| 311 # Second results | 364 # Second results |
| 312 results.WillRunPage(self.pages[0]) | 365 results.WillRunPage(self.pages[0]) |
| 313 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3)) | 366 results.AddValue(scalar.ScalarValue( |
| 314 results.AddValue(scalar.ScalarValue(self.pages[0], 'b', 'seconds', 4)) | 367 self.pages[0], 'a', 'seconds', 3, |
| 368 improvement_direction=improvement_direction.UP)) |
| 369 results.AddValue(scalar.ScalarValue( |
| 370 self.pages[0], 'b', 'seconds', 4, |
| 371 improvement_direction=improvement_direction.UP)) |
| 315 results.DidRunPage(self.pages[0]) | 372 results.DidRunPage(self.pages[0]) |
| 316 results.WillRunPage(self.pages[1]) | 373 results.WillRunPage(self.pages[1]) |
| 317 results.AddValue(scalar.ScalarValue(self.pages[1], 'a', 'seconds', 1)) | 374 results.AddValue(scalar.ScalarValue( |
| 318 results.AddValue(scalar.ScalarValue(self.pages[1], 'd', 'seconds', 2)) | 375 self.pages[1], 'a', 'seconds', 1, |
| 376 improvement_direction=improvement_direction.UP)) |
| 377 results.AddValue(scalar.ScalarValue( |
| 378 self.pages[1], 'd', 'seconds', 2, |
| 379 improvement_direction=improvement_direction.UP)) |
| 319 results.DidRunPage(self.pages[1]) | 380 results.DidRunPage(self.pages[1]) |
| 320 results.PrintSummary() | 381 results.PrintSummary() |
| 321 expected_values = [ | 382 expected_values = [ |
| 322 ('a', 'http://www.foo.com/', 3), | 383 ('a', 'http://www.foo.com/', 3), |
| 323 ('b', 'http://www.foo.com/', 4), | 384 ('b', 'http://www.foo.com/', 4), |
| 324 ('a', 'http://www.bar.com/', 1), | 385 ('a', 'http://www.bar.com/', 1), |
| 325 ('d', 'http://www.bar.com/', 2)] | 386 ('d', 'http://www.bar.com/', 2)] |
| 326 actual_values = [(v.name, v.page.url, v.value) | 387 actual_values = [(v.name, v.page.url, v.value) |
| 327 for v in results.all_page_specific_values] | 388 for v in results.all_page_specific_values] |
| 328 self.assertEquals(expected_values, actual_values) | 389 self.assertEquals(expected_values, actual_values) |
| 329 | 390 |
| 330 def testFailureValueCannotBeFiltered(self): | 391 def testFailureValueCannotBeFiltered(self): |
| 331 def AcceptValueNamed_a(value, _): | 392 def AcceptValueNamed_a(value, _): |
| 332 return value.name == 'a' | 393 return value.name == 'a' |
| 333 results = page_test_results.PageTestResults( | 394 results = page_test_results.PageTestResults( |
| 334 value_can_be_added_predicate=AcceptValueNamed_a) | 395 value_can_be_added_predicate=AcceptValueNamed_a) |
| 335 results.WillRunPage(self.pages[0]) | 396 results.WillRunPage(self.pages[0]) |
| 336 results.AddValue(scalar.ScalarValue(self.pages[0], 'b', 'seconds', 8)) | 397 results.AddValue(scalar.ScalarValue( |
| 398 self.pages[0], 'b', 'seconds', 8, |
| 399 improvement_direction=improvement_direction.UP)) |
| 337 failure_value = failure.FailureValue.FromMessage(self.pages[0], 'failure') | 400 failure_value = failure.FailureValue.FromMessage(self.pages[0], 'failure') |
| 338 results.AddValue(failure_value) | 401 results.AddValue(failure_value) |
| 339 results.DidRunPage(self.pages[0]) | 402 results.DidRunPage(self.pages[0]) |
| 340 results.PrintSummary() | 403 results.PrintSummary() |
| 341 | 404 |
| 342 # Although predicate says only accept values named 'a', the failure value is | 405 # Although predicate says only accept values named 'a', the failure value is |
| 343 # added anyway. | 406 # added anyway. |
| 344 self.assertEquals(len(results.all_page_specific_values), 1) | 407 self.assertEquals(len(results.all_page_specific_values), 1) |
| 345 self.assertIn(failure_value, results.all_page_specific_values) | 408 self.assertIn(failure_value, results.all_page_specific_values) |
| 346 | 409 |
| 347 def testSkipValueCannotBeFiltered(self): | 410 def testSkipValueCannotBeFiltered(self): |
| 348 def AcceptValueNamed_a(value, _): | 411 def AcceptValueNamed_a(value, _): |
| 349 return value.name == 'a' | 412 return value.name == 'a' |
| 350 results = page_test_results.PageTestResults( | 413 results = page_test_results.PageTestResults( |
| 351 value_can_be_added_predicate=AcceptValueNamed_a) | 414 value_can_be_added_predicate=AcceptValueNamed_a) |
| 352 results.WillRunPage(self.pages[0]) | 415 results.WillRunPage(self.pages[0]) |
| 353 skip_value = skip.SkipValue(self.pages[0], 'skip for testing') | 416 skip_value = skip.SkipValue(self.pages[0], 'skip for testing') |
| 354 results.AddValue(scalar.ScalarValue(self.pages[0], 'b', 'seconds', 8)) | 417 results.AddValue(scalar.ScalarValue( |
| 418 self.pages[0], 'b', 'seconds', 8, |
| 419 improvement_direction=improvement_direction.UP)) |
| 355 results.AddValue(skip_value) | 420 results.AddValue(skip_value) |
| 356 results.DidRunPage(self.pages[0]) | 421 results.DidRunPage(self.pages[0]) |
| 357 results.PrintSummary() | 422 results.PrintSummary() |
| 358 | 423 |
| 359 # Although predicate says only accept value with named 'a', skip value is | 424 # Although predicate says only accept value with named 'a', skip value is |
| 360 # added anyway. | 425 # added anyway. |
| 361 self.assertEquals(len(results.all_page_specific_values), 1) | 426 self.assertEquals(len(results.all_page_specific_values), 1) |
| 362 self.assertIn(skip_value, results.all_page_specific_values) | 427 self.assertIn(skip_value, results.all_page_specific_values) |
| OLD | NEW |