| 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 | 7 |
| 7 from telemetry import page as page_module | 8 from telemetry import page as page_module |
| 8 from telemetry.page import page_set | 9 from telemetry.page import page_set |
| 9 from telemetry.results import base_test_results_unittest | 10 from telemetry.results import base_test_results_unittest |
| 10 from telemetry.results import page_test_results | 11 from telemetry.results import page_test_results |
| 11 from telemetry.timeline import trace_data | 12 from telemetry.timeline import trace_data |
| 12 from telemetry.value import failure | 13 from telemetry.value import failure |
| 13 from telemetry.value import histogram | 14 from telemetry.value import histogram |
| 14 from telemetry.value import scalar | 15 from telemetry.value import scalar |
| 15 from telemetry.value import skip | 16 from telemetry.value import skip |
| (...skipping 21 matching lines...) Expand all Loading... |
| 37 results.WillRunPage(self.pages[1]) | 38 results.WillRunPage(self.pages[1]) |
| 38 results.DidRunPage(self.pages[1]) | 39 results.DidRunPage(self.pages[1]) |
| 39 | 40 |
| 40 self.assertEqual(set([self.pages[0]]), results.pages_that_failed) | 41 self.assertEqual(set([self.pages[0]]), results.pages_that_failed) |
| 41 self.assertEqual(set([self.pages[1]]), results.pages_that_succeeded) | 42 self.assertEqual(set([self.pages[1]]), results.pages_that_succeeded) |
| 42 | 43 |
| 43 self.assertEqual(2, len(results.all_page_runs)) | 44 self.assertEqual(2, len(results.all_page_runs)) |
| 44 self.assertTrue(results.all_page_runs[0].failed) | 45 self.assertTrue(results.all_page_runs[0].failed) |
| 45 self.assertTrue(results.all_page_runs[1].ok) | 46 self.assertTrue(results.all_page_runs[1].ok) |
| 46 | 47 |
| 47 | |
| 48 def testSkips(self): | 48 def testSkips(self): |
| 49 results = page_test_results.PageTestResults() | 49 results = page_test_results.PageTestResults() |
| 50 results.WillRunPage(self.pages[0]) | 50 results.WillRunPage(self.pages[0]) |
| 51 results.AddValue(skip.SkipValue(self.pages[0], 'testing reason')) | 51 results.AddValue(skip.SkipValue(self.pages[0], 'testing reason')) |
| 52 results.DidRunPage(self.pages[0]) | 52 results.DidRunPage(self.pages[0]) |
| 53 | 53 |
| 54 results.WillRunPage(self.pages[1]) | 54 results.WillRunPage(self.pages[1]) |
| 55 results.DidRunPage(self.pages[1]) | 55 results.DidRunPage(self.pages[1]) |
| 56 | 56 |
| 57 self.assertTrue(results.all_page_runs[0].skipped) | 57 self.assertTrue(results.all_page_runs[0].skipped) |
| (...skipping 19 matching lines...) Expand all Loading... |
| 77 | 77 |
| 78 values = results.FindPageSpecificValuesForPage(self.pages[0], 'a') | 78 values = results.FindPageSpecificValuesForPage(self.pages[0], 'a') |
| 79 self.assertEquals(1, len(values)) | 79 self.assertEquals(1, len(values)) |
| 80 v = values[0] | 80 v = values[0] |
| 81 self.assertEquals(v.name, 'a') | 81 self.assertEquals(v.name, 'a') |
| 82 self.assertEquals(v.page, self.pages[0]) | 82 self.assertEquals(v.page, self.pages[0]) |
| 83 | 83 |
| 84 values = results.FindAllPageSpecificValuesNamed('a') | 84 values = results.FindAllPageSpecificValuesNamed('a') |
| 85 assert len(values) == 2 | 85 assert len(values) == 2 |
| 86 | 86 |
| 87 def testResultsFiltering(self): | |
| 88 def AcceptValueNamed_a(value): | |
| 89 return value.name == 'a' | |
| 90 results = page_test_results.PageTestResults( | |
| 91 value_can_be_added_predicate=AcceptValueNamed_a) | |
| 92 results.WillRunPage(self.pages[0]) | |
| 93 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3)) | |
| 94 results.AddValue(scalar.ScalarValue(self.pages[0], 'b', 'seconds', 3)) | |
| 95 results.DidRunPage(self.pages[0]) | |
| 96 | |
| 97 results.WillRunPage(self.pages[1]) | |
| 98 results.AddValue(scalar.ScalarValue(self.pages[1], 'a', 'seconds', 3)) | |
| 99 results.AddValue(scalar.ScalarValue(self.pages[1], 'd', 'seconds', 3)) | |
| 100 results.DidRunPage(self.pages[1]) | |
| 101 | |
| 102 results.PrintSummary() | |
| 103 | |
| 104 values = results.FindPageSpecificValuesForPage(self.pages[0], 'a') | |
| 105 self.assertEquals(1, len(values)) | |
| 106 v = values[0] | |
| 107 self.assertEquals(v.name, 'a') | |
| 108 self.assertEquals(v.page, self.pages[0]) | |
| 109 | |
| 110 values = results.FindPageSpecificValuesForPage(self.pages[0], 'b') | |
| 111 self.assertEquals(0, len(values)) | |
| 112 | |
| 113 values = results.FindAllPageSpecificValuesNamed('a') | |
| 114 self.assertEquals(len(values), 2) | |
| 115 | |
| 116 values = results.all_page_specific_values | |
| 117 self.assertEquals(len(values), 2) | |
| 118 | |
| 119 def testUrlIsInvalidValue(self): | 87 def testUrlIsInvalidValue(self): |
| 120 results = page_test_results.PageTestResults() | 88 results = page_test_results.PageTestResults() |
| 121 results.WillRunPage(self.pages[0]) | 89 results.WillRunPage(self.pages[0]) |
| 122 self.assertRaises( | 90 self.assertRaises( |
| 123 AssertionError, | 91 AssertionError, |
| 124 lambda: results.AddValue(scalar.ScalarValue( | 92 lambda: results.AddValue(scalar.ScalarValue( |
| 125 self.pages[0], 'url', 'string', 'foo'))) | 93 self.pages[0], 'url', 'string', 'foo'))) |
| 126 | 94 |
| 127 def testAddSummaryValueWithPageSpecified(self): | 95 def testAddSummaryValueWithPageSpecified(self): |
| 128 results = page_test_results.PageTestResults() | 96 results = page_test_results.PageTestResults() |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 259 results.WillRunPage(self.pages[0]) | 227 results.WillRunPage(self.pages[0]) |
| 260 results.AddValue(v0) | 228 results.AddValue(v0) |
| 261 results.DidRunPage(self.pages[0]) | 229 results.DidRunPage(self.pages[0]) |
| 262 | 230 |
| 263 results.WillRunPage(self.pages[1]) | 231 results.WillRunPage(self.pages[1]) |
| 264 results.AddValue(v1) | 232 results.AddValue(v1) |
| 265 results.DidRunPage(self.pages[1]) | 233 results.DidRunPage(self.pages[1]) |
| 266 | 234 |
| 267 results.CleanUp() | 235 results.CleanUp() |
| 268 self.assertFalse(results.FindAllTraceValues()) | 236 self.assertFalse(results.FindAllTraceValues()) |
| 237 |
| 238 |
| 239 class PageTestResultsFilterTest(unittest.TestCase): |
| 240 def setUp(self): |
| 241 ps = page_set.PageSet(file_path=os.path.dirname(__file__)) |
| 242 ps.AddUserStory(page_module.Page('http://www.foo.com/', ps, ps.base_dir)) |
| 243 ps.AddUserStory(page_module.Page('http://www.bar.com/', ps, ps.base_dir)) |
| 244 self.page_set = ps |
| 245 |
| 246 @property |
| 247 def pages(self): |
| 248 return self.page_set.pages |
| 249 |
| 250 def testFilterValue(self): |
| 251 def AcceptValueNamed_a(value, _): |
| 252 return value.name == 'a' |
| 253 results = page_test_results.PageTestResults( |
| 254 value_can_be_added_predicate=AcceptValueNamed_a) |
| 255 results.WillRunPage(self.pages[0]) |
| 256 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3)) |
| 257 results.AddValue(scalar.ScalarValue(self.pages[0], 'b', 'seconds', 3)) |
| 258 results.DidRunPage(self.pages[0]) |
| 259 |
| 260 results.WillRunPage(self.pages[1]) |
| 261 results.AddValue(scalar.ScalarValue(self.pages[1], 'a', 'seconds', 3)) |
| 262 results.AddValue(scalar.ScalarValue(self.pages[1], 'd', 'seconds', 3)) |
| 263 results.DidRunPage(self.pages[1]) |
| 264 results.PrintSummary() |
| 265 self.assertEquals( |
| 266 [('a', 'http://www.foo.com/'), ('a', 'http://www.bar.com/')], |
| 267 [(v.name, v.page.url) for v in results.all_page_specific_values]) |
| 268 |
| 269 def testFilterIsFirstResult(self): |
| 270 def AcceptSecondValues(_, is_first_result): |
| 271 return not is_first_result |
| 272 results = page_test_results.PageTestResults( |
| 273 value_can_be_added_predicate=AcceptSecondValues) |
| 274 |
| 275 # First results (filtered out) |
| 276 results.WillRunPage(self.pages[0]) |
| 277 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 7)) |
| 278 results.AddValue(scalar.ScalarValue(self.pages[0], 'b', 'seconds', 8)) |
| 279 results.DidRunPage(self.pages[0]) |
| 280 results.WillRunPage(self.pages[1]) |
| 281 results.AddValue(scalar.ScalarValue(self.pages[1], 'a', 'seconds', 5)) |
| 282 results.AddValue(scalar.ScalarValue(self.pages[1], 'd', 'seconds', 6)) |
| 283 results.DidRunPage(self.pages[1]) |
| 284 |
| 285 # Second results |
| 286 results.WillRunPage(self.pages[0]) |
| 287 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3)) |
| 288 results.AddValue(scalar.ScalarValue(self.pages[0], 'b', 'seconds', 4)) |
| 289 results.DidRunPage(self.pages[0]) |
| 290 results.WillRunPage(self.pages[1]) |
| 291 results.AddValue(scalar.ScalarValue(self.pages[1], 'a', 'seconds', 1)) |
| 292 results.AddValue(scalar.ScalarValue(self.pages[1], 'd', 'seconds', 2)) |
| 293 results.DidRunPage(self.pages[1]) |
| 294 results.PrintSummary() |
| 295 expected_values = [ |
| 296 ('a', 'http://www.foo.com/', 3), |
| 297 ('b', 'http://www.foo.com/', 4), |
| 298 ('a', 'http://www.bar.com/', 1), |
| 299 ('d', 'http://www.bar.com/', 2)] |
| 300 actual_values = [(v.name, v.page.url, v.value) |
| 301 for v in results.all_page_specific_values] |
| 302 self.assertEquals(expected_values, actual_values) |
| OLD | NEW |