15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved. 25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)# found in the LICENSE file. 45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry.value import failure 65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry.value import skip 75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class PageRun(object): 105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def __init__(self, page): 115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self._page = page 125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self._values = [] 135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def AddValue(self, value): 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self._values.append(value) 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def ClearValues(self): 185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self._values = [] 195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) @property 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def page(self): 225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return self._page 235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) @property 255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def values(self): 265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) """The values that correspond to this page run.""" 275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return self._values 285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) @property 305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def ok(self): 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) """Whether the current run is still ok. 325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) To be precise: returns true if there is neither FailureValue nor 345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) SkipValue in self.values. 355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) """ 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return not self.skipped and not self.failed 375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) @property 395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def skipped(self): 405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) """Whether the current run is being skipped. 415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) To be precise: returns true if there is any SkipValue in self.values. 435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) """ 445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return any(isinstance(v, skip.SkipValue) for v in self.values) 455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) @property 475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def failed(self): 485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) """Whether the current run failed. 495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) To be precise: returns true if there is a FailureValue but not 515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) SkipValue in self.values. 525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) """ 535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return not self.skipped and any( 545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) isinstance(v, failure.FailureValue) for v in self.values) 55