| Index: tools/telemetry/telemetry/value/string.py
|
| diff --git a/tools/telemetry/telemetry/value/string.py b/tools/telemetry/telemetry/value/string.py
|
| index b1cb6ff45eda72cd47b7d460e9b4d089e5c31b24..d9e21c6168304843aa1c0b876b59c6d78ef84e92 100644
|
| --- a/tools/telemetry/telemetry/value/string.py
|
| +++ b/tools/telemetry/telemetry/value/string.py
|
| @@ -9,14 +9,16 @@ from telemetry.value import none_values
|
|
|
| class StringValue(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, integer or string) result from a test.
|
|
|
| A test that output a hash of the content in a page might produce a
|
| string value:
|
| StringValue(page, 'page_hash', 'hash', '74E377FF')
|
| """
|
| - super(StringValue, self).__init__(page, name, units, important, description)
|
| + super(StringValue, self).__init__(page, name, units, important, description,
|
| + interaction_record)
|
| assert value is None or isinstance(value, basestring)
|
| none_values.ValidateNoneValueReason(value, none_value_reason)
|
| self.value = value
|
| @@ -27,13 +29,15 @@ class StringValue(value_module.Value):
|
| page_name = self.page.url
|
| else:
|
| page_name = None
|
| - return 'StringValue(%s, %s, %s, %s, important=%s, description=%s)' % (
|
| - page_name,
|
| - self.name,
|
| - self.units,
|
| - self.value,
|
| - self.important,
|
| - self.description)
|
| + return ('StringValue(%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):
|
| @@ -71,6 +75,8 @@ class StringValue(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 StringValue(**kwargs)
|
|
|
| @@ -78,7 +84,7 @@ class StringValue(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,
|
| @@ -86,10 +92,10 @@ class StringValue(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
|
| @@ -98,4 +104,5 @@ class StringValue(value_module.Value):
|
| none_value_reason = none_values.MERGE_FAILURE_REASON
|
| return list_of_string_values.ListOfStringValues(
|
| page, name, v0.units, merged_value, important=v0.important,
|
| + interaction_record=interaction_record,
|
| none_value_reason=none_value_reason)
|
|
|