| Index: tools/telemetry/telemetry/value/scalar.py
|
| diff --git a/tools/telemetry/telemetry/value/scalar.py b/tools/telemetry/telemetry/value/scalar.py
|
| index d83753af414e27ab98aa576ee823413b400d728f..be4f7f8e146f94a97f0d3dafaab8ed28294ccb08 100644
|
| --- a/tools/telemetry/telemetry/value/scalar.py
|
| +++ b/tools/telemetry/telemetry/value/scalar.py
|
| @@ -11,14 +11,16 @@ from telemetry.value import none_values
|
|
|
| class ScalarValue(value_module.Value):
|
| def __init__(self, page, name, units, value, important=True,
|
| - description=None, none_value_reason=None):
|
| + description=None, interaction_record=None,
|
| + none_value_reason=None):
|
| """A single value (float or integer) result from a test.
|
|
|
| A test that counts the number of DOM elements in a page might produce a
|
| scalar value:
|
| ScalarValue(page, 'num_dom_elements', 'count', num_elements)
|
| """
|
| - super(ScalarValue, self).__init__(page, name, units, important, description)
|
| + super(ScalarValue, self).__init__(page, name, units, important, description,
|
| + interaction_record)
|
| assert value is None or isinstance(value, numbers.Number)
|
| none_values.ValidateNoneValueReason(value, none_value_reason)
|
| self.value = value
|
| @@ -29,13 +31,15 @@ class ScalarValue(value_module.Value):
|
| page_name = self.page.url
|
| else:
|
| page_name = None
|
| - return 'ScalarValue(%s, %s, %s, %s, important=%s, description=%s)' % (
|
| - page_name,
|
| - self.name,
|
| - self.units,
|
| - self.value,
|
| - self.important,
|
| - self.description)
|
| + return ('ScalarValue(%s, %s, %s, %s, important=%s, description=%s, '
|
| + 'interaction_record=%s') % (
|
| + page_name,
|
| + self.name,
|
| + self.units,
|
| + self.value,
|
| + self.important,
|
| + self.description,
|
| + self.interaction_record)
|
|
|
| def GetBuildbotDataType(self, output_context):
|
| if self._IsImportantGivenOutputIntent(output_context):
|
| @@ -73,6 +77,8 @@ class ScalarValue(value_module.Value):
|
|
|
| if 'none_value_reason' in value_dict:
|
| kwargs['none_value_reason'] = value_dict['none_value_reason']
|
| + if 'interaction_record' in value_dict:
|
| + kwargs['interaction_record'] = value_dict['interaction_record']
|
|
|
| return ScalarValue(**kwargs)
|
|
|
| @@ -80,7 +86,7 @@ class ScalarValue(value_module.Value):
|
| def MergeLikeValuesFromSamePage(cls, values):
|
| assert len(values) > 0
|
| v0 = values[0]
|
| - return cls._MergeLikeValues(values, v0.page, v0.name)
|
| + return cls._MergeLikeValues(values, v0.page, v0.name, v0.interaction_record)
|
|
|
| @classmethod
|
| def MergeLikeValuesFromDifferentPages(cls, values,
|
| @@ -88,10 +94,10 @@ class ScalarValue(value_module.Value):
|
| assert len(values) > 0
|
| v0 = values[0]
|
| name = v0.name_suffix if group_by_name_suffix else v0.name
|
| - return cls._MergeLikeValues(values, None, name)
|
| + return cls._MergeLikeValues(values, None, name, v0.interaction_record)
|
|
|
| @classmethod
|
| - def _MergeLikeValues(cls, values, page, name):
|
| + def _MergeLikeValues(cls, values, page, name, interaction_record):
|
| v0 = values[0]
|
| merged_value = [v.value for v in values]
|
| none_value_reason = None
|
| @@ -100,4 +106,5 @@ class ScalarValue(value_module.Value):
|
| none_value_reason = none_values.MERGE_FAILURE_REASON
|
| return list_of_scalar_values.ListOfScalarValues(
|
| page, name, v0.units, merged_value, important=v0.important,
|
| + interaction_record=interaction_record,
|
| none_value_reason=none_value_reason)
|
|
|