Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(115)

Side by Side Diff: tools/telemetry/telemetry/results/page_test_results.py

Issue 390233002: Kill AddError/AddErrorMessage from PageTestResults. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 collections 5 import collections
6 import copy 6 import copy
7 import logging 7 import logging
8 import sys 8 import sys
9 import traceback 9 import traceback
10 10
11 11
12 class PageTestResults(object): 12 class PageTestResults(object):
13 def __init__(self, output_stream=None): 13 def __init__(self, output_stream=None):
14 super(PageTestResults, self).__init__() 14 super(PageTestResults, self).__init__()
15 self._output_stream = output_stream 15 self._output_stream = output_stream
16 self.pages_that_had_errors = set()
17 self.pages_that_had_failures = set() 16 self.pages_that_had_failures = set()
18 self.successes = [] 17 self.successes = []
19 self.errors = []
20 self.failures = [] 18 self.failures = []
21 self.skipped = [] 19 self.skipped = []
22 20
23 def __copy__(self): 21 def __copy__(self):
24 cls = self.__class__ 22 cls = self.__class__
25 result = cls.__new__(cls) 23 result = cls.__new__(cls)
26 for k, v in self.__dict__.items(): 24 for k, v in self.__dict__.items():
27 if isinstance(v, collections.Container): 25 if isinstance(v, collections.Container):
28 v = copy.copy(v) 26 v = copy.copy(v)
29 setattr(result, k, v) 27 setattr(result, k, v)
30 return result 28 return result
31 29
32 @property
33 def pages_that_had_errors_or_failures(self):
34 return self.pages_that_had_errors.union(
35 self.pages_that_had_failures)
36
37 def _GetStringFromExcInfo(self, err): 30 def _GetStringFromExcInfo(self, err):
38 return ''.join(traceback.format_exception(*err)) 31 return ''.join(traceback.format_exception(*err))
39 32
40 def StartTest(self, page): 33 def StartTest(self, page):
41 pass 34 pass
42 35
43 def StopTest(self, page): 36 def StopTest(self, page):
44 pass 37 pass
45 38
46 def AddError(self, page, err):
47 self.pages_that_had_errors.add(page)
48 self.errors.append((page, self._GetStringFromExcInfo(err)))
49
50 def AddFailure(self, page, err): 39 def AddFailure(self, page, err):
51 self.pages_that_had_failures.add(page) 40 self.pages_that_had_failures.add(page)
nednguyen 2014/07/15 03:07:42 It seems like this pages_that_had_failures is not
chrishenry 2014/07/15 17:55:53 It is being used from PageMeasurementResults.
52 self.failures.append((page, self._GetStringFromExcInfo(err))) 41 self.failures.append((page, self._GetStringFromExcInfo(err)))
53 42
54 def AddSkip(self, page, reason): 43 def AddSkip(self, page, reason):
55 self.skipped.append((page, reason)) 44 self.skipped.append((page, reason))
56 45
57 def AddSuccess(self, page): 46 def AddSuccess(self, page):
58 self.successes.append(page) 47 self.successes.append(page)
59 48
60 def AddFailureMessage(self, page, message): 49 def AddFailureMessage(self, page, message):
61 try: 50 try:
62 raise Exception(message) 51 raise Exception(message)
63 except Exception: 52 except Exception:
64 self.AddFailure(page, sys.exc_info()) 53 self.AddFailure(page, sys.exc_info())
65 54
66 def AddErrorMessage(self, page, message):
67 try:
68 raise Exception(message)
69 except Exception:
70 self.AddError(page, sys.exc_info())
71
72 def PrintSummary(self): 55 def PrintSummary(self):
73 if self.failures: 56 if self.failures:
74 logging.error('Failed pages:\n%s', '\n'.join( 57 logging.error('Failed pages:\n%s', '\n'.join(
75 p.display_name for p in zip(*self.failures)[0])) 58 p.display_name for p in zip(*self.failures)[0]))
76 59
77 if self.errors:
78 logging.error('Errored pages:\n%s', '\n'.join(
79 p.display_name for p in zip(*self.errors)[0]))
80
81 if self.skipped: 60 if self.skipped:
82 logging.warning('Skipped pages:\n%s', '\n'.join( 61 logging.warning('Skipped pages:\n%s', '\n'.join(
83 p.display_name for p in zip(*self.skipped)[0])) 62 p.display_name for p in zip(*self.skipped)[0]))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698