Index: tools/telemetry/telemetry/value/__init__.py |
diff --git a/tools/telemetry/telemetry/value/__init__.py b/tools/telemetry/telemetry/value/__init__.py |
index d38199858e560e6df749a5f23f5fda48ebf9ccf9..474a9b4e77536d64f5d34bf417c421a797424116 100644 |
--- a/tools/telemetry/telemetry/value/__init__.py |
+++ b/tools/telemetry/telemetry/value/__init__.py |
@@ -42,7 +42,8 @@ SUMMARY_RESULT_OUTPUT_CONTEXT = 'summary-result-output-context' |
class Value(object): |
"""An abstract value produced by a telemetry page test. |
""" |
- def __init__(self, page, name, units, important, description): |
+ def __init__(self, page, name, units, important, description, |
+ interaction_record): |
"""A generic Value object. |
Args: |
@@ -56,6 +57,8 @@ class Value(object): |
by default in downstream UIs. |
description: A string explaining in human-understandable terms what this |
value represents. |
+ interaction_record: The string label of the TimelineInteractionRecord with |
+ which this value is associated. |
""" |
# TODO(eakuefner): Check user story here after migration (crbug.com/442036) |
if not isinstance(name, basestring): |
@@ -66,17 +69,23 @@ class Value(object): |
raise ValueError('important field of Value must be bool.') |
if not ((description is None) or isinstance(description, basestring)): |
raise ValueError('description field of Value must absent or string.') |
+ if not ((interaction_record is None) or |
+ isinstance(interaction_record, basestring)): |
+ raise ValueError('interaction_record field of Value must absent or ' |
+ 'string.') |
self.page = page |
self.name = name |
self.units = units |
self.important = important |
self.description = description |
+ self.interaction_record = interaction_record |
def IsMergableWith(self, that): |
return (self.units == that.units and |
type(self) == type(that) and |
- self.important == that.important) |
+ self.important == that.important and |
+ self.interaction_record == that.interaction_record) |
@classmethod |
def MergeLikeValuesFromSamePage(cls, values): |
@@ -196,6 +205,9 @@ class Value(object): |
if self.description: |
d['description'] = self.description |
+ if self.interaction_record: |
+ d['interaction_record'] = self.interaction_record |
+ |
if self.page: |
d['page_id'] = self.page.id |
@@ -282,6 +294,12 @@ class Value(object): |
d['important'] = False |
+ interaction_record = value_dict.get('interaction_record', None) |
+ if interaction_record: |
+ d['interaction_record'] = interaction_record |
+ else: |
+ d['interaction_record'] = None |
+ |
return d |
def ValueNameFromTraceAndChartName(trace_name, chart_name=None): |