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