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) |