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 |