OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 from telemetry import value as value_module | 5 from telemetry import value as value_module |
6 from telemetry.value import list_of_string_values | 6 from telemetry.value import list_of_string_values |
7 from telemetry.value import none_values | 7 from telemetry.value import none_values |
8 | 8 |
9 | 9 |
10 class StringValue(value_module.Value): | 10 class StringValue(value_module.Value): |
11 def __init__(self, page, name, units, value, important=True, | 11 def __init__(self, page, name, units, value, important=True, |
12 description=None, tir_label=None, | 12 description=None, tir_label=None, |
13 none_value_reason=None): | 13 none_value_reason=None): |
14 """A single value (float, integer or string) result from a test. | 14 """A single value (float, integer or string) result from a test. |
15 | 15 |
16 A test that output a hash of the content in a page might produce a | 16 A test that output a hash of the content in a page might produce a |
17 string value: | 17 string value: |
18 StringValue(page, 'page_hash', 'hash', '74E377FF') | 18 StringValue(page, 'page_hash', 'hash', '74E377FF') |
19 """ | 19 """ |
20 super(StringValue, self).__init__(page, name, units, important, description, | 20 super(StringValue, self).__init__(page, name, units, important, description, |
21 tir_label) | 21 tir_label) |
22 assert value is None or isinstance(value, basestring) | 22 assert value is None or isinstance(value, basestring) |
23 none_values.ValidateNoneValueReason(value, none_value_reason) | 23 none_values.ValidateNoneValueReason(value, none_value_reason) |
24 self.value = value | 24 self.value = value |
25 self.none_value_reason = none_value_reason | 25 self.none_value_reason = none_value_reason |
26 | 26 |
27 def __repr__(self): | 27 def __repr__(self): |
28 if self.page: | 28 if self.page: |
29 page_name = self.page.url | 29 page_name = self.page.name |
30 else: | 30 else: |
31 page_name = None | 31 page_name = None |
32 return ('StringValue(%s, %s, %s, %s, important=%s, description=%s, ' | 32 return ('StringValue(%s, %s, %s, %s, important=%s, description=%s, ' |
33 'tir_label=%s)') % ( | 33 'tir_label=%s)') % ( |
34 page_name, | 34 page_name, |
35 self.name, | 35 self.name, |
36 self.units, | 36 self.units, |
37 self.value, | 37 self.value, |
38 self.important, | 38 self.important, |
39 self.description, | 39 self.description, |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 v0 = values[0] | 99 v0 = values[0] |
100 merged_value = [v.value for v in values] | 100 merged_value = [v.value for v in values] |
101 none_value_reason = None | 101 none_value_reason = None |
102 if None in merged_value: | 102 if None in merged_value: |
103 merged_value = None | 103 merged_value = None |
104 none_value_reason = none_values.MERGE_FAILURE_REASON | 104 none_value_reason = none_values.MERGE_FAILURE_REASON |
105 return list_of_string_values.ListOfStringValues( | 105 return list_of_string_values.ListOfStringValues( |
106 page, name, v0.units, merged_value, important=v0.important, | 106 page, name, v0.units, merged_value, important=v0.important, |
107 tir_label=tir_label, | 107 tir_label=tir_label, |
108 none_value_reason=none_value_reason) | 108 none_value_reason=none_value_reason) |
OLD | NEW |