Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(247)

Side by Side Diff: tools/telemetry/telemetry/value/list_of_scalar_values_unittest.py

Issue 475503004: Support None value for telemetry values. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: split out smoothness/rendering_stats changes Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 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 import os 4 import os
5 import unittest 5 import unittest
6 6
7 from telemetry import value 7 from telemetry import value
8 from telemetry.page import page_set 8 from telemetry.page import page_set
9 from telemetry.value import list_of_scalar_values 9 from telemetry.value import list_of_scalar_values
10 from telemetry.value import none_values
10 11
11 12
12 class TestBase(unittest.TestCase): 13 class TestBase(unittest.TestCase):
13 def setUp(self): 14 def setUp(self):
14 self.page_set = page_set.PageSet(file_path=os.path.dirname(__file__)) 15 self.page_set = page_set.PageSet(file_path=os.path.dirname(__file__))
15 self.page_set.AddPageWithDefaultRunNavigate("http://www.bar.com/") 16 self.page_set.AddPageWithDefaultRunNavigate("http://www.bar.com/")
16 self.page_set.AddPageWithDefaultRunNavigate("http://www.baz.com/") 17 self.page_set.AddPageWithDefaultRunNavigate("http://www.baz.com/")
17 self.page_set.AddPageWithDefaultRunNavigate("http://www.foo.com/") 18 self.page_set.AddPageWithDefaultRunNavigate("http://www.foo.com/")
18 19
19 @property 20 @property
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 53
53 vM = (list_of_scalar_values.ListOfScalarValues. 54 vM = (list_of_scalar_values.ListOfScalarValues.
54 MergeLikeValuesFromSamePage([v0, v1])) 55 MergeLikeValuesFromSamePage([v0, v1]))
55 self.assertEquals(page0, vM.page) 56 self.assertEquals(page0, vM.page)
56 self.assertEquals('x', vM.name) 57 self.assertEquals('x', vM.name)
57 self.assertEquals('unit', vM.units) 58 self.assertEquals('unit', vM.units)
58 self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy) 59 self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy)
59 self.assertEquals(True, vM.important) 60 self.assertEquals(True, vM.important)
60 self.assertEquals([1, 2], vM.values) 61 self.assertEquals([1, 2], vM.values)
61 62
62 def testListDifferentPageMerging(self): 63 def testListDifferentPageMerging(self):
nednguyen 2014/08/18 06:54:57 Can you add testListSamePageMerging do we don't lo
ariblue 2014/08/18 17:56:45 There are already the following tests: * testListS
63 page0 = self.pages[0] 64 page0 = self.pages[0]
65 page1 = self.pages[1]
64 v0 = list_of_scalar_values.ListOfScalarValues( 66 v0 = list_of_scalar_values.ListOfScalarValues(
65 page0, 'x', 'unit', 67 page0, 'x', 'unit',
66 [1, 2], same_page_merge_policy=value.PICK_FIRST) 68 [1, 2], same_page_merge_policy=value.CONCATENATE)
67 v1 = list_of_scalar_values.ListOfScalarValues( 69 v1 = list_of_scalar_values.ListOfScalarValues(
68 page0, 'x', 'unit', 70 page1, 'x', 'unit',
69 [3, 4], same_page_merge_policy=value.PICK_FIRST) 71 [3, 4], same_page_merge_policy=value.CONCATENATE)
70 self.assertTrue(v1.IsMergableWith(v0)) 72 self.assertTrue(v1.IsMergableWith(v0))
71 73
72 vM = (list_of_scalar_values.ListOfScalarValues. 74 vM = (list_of_scalar_values.ListOfScalarValues.
73 MergeLikeValuesFromDifferentPages([v0, v1])) 75 MergeLikeValuesFromDifferentPages([v0, v1]))
74 self.assertEquals(None, vM.page) 76 self.assertEquals(None, vM.page)
75 self.assertEquals('x', vM.name) 77 self.assertEquals('x', vM.name)
76 self.assertEquals('unit', vM.units) 78 self.assertEquals('unit', vM.units)
77 self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy) 79 self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy)
78 self.assertEquals(True, vM.important) 80 self.assertEquals(True, vM.important)
79 self.assertEquals([1, 2, 3, 4], vM.values) 81 self.assertEquals([1, 2, 3, 4], vM.values)
80 82
83 def testListWithNoneValueMerging(self):
84 page0 = self.pages[0]
85 v0 = list_of_scalar_values.ListOfScalarValues(
86 page0, 'x', 'unit',
87 [1, 2], same_page_merge_policy=value.CONCATENATE)
88 v1 = list_of_scalar_values.ListOfScalarValues(
89 page0, 'x', 'unit',
90 None, same_page_merge_policy=value.CONCATENATE, none_value_reason='n')
91 self.assertTrue(v1.IsMergableWith(v0))
92
93 vM = (list_of_scalar_values.ListOfScalarValues.
94 MergeLikeValuesFromSamePage([v0, v1]))
95 self.assertEquals(None, vM.values)
96 self.assertEquals(none_values.MERGE_FAILURE_REASON,
97 vM.none_value_reason)
98
99 def testListWithNoneValueMustHaveNoneReason(self):
100 page0 = self.pages[0]
101 self.assertRaises(none_values.NoneValueMissingReason,
102 lambda: list_of_scalar_values.ListOfScalarValues(
103 page0, 'x', 'unit', None))
104
105 def testListWithNoneReasonMustHaveNoneValue(self):
106 page0 = self.pages[0]
107 self.assertRaises(none_values.ValueMustHaveNoneValue,
108 lambda: list_of_scalar_values.ListOfScalarValues(
109 page0, 'x', 'unit', [1, 2],
110 none_value_reason='n'))
111
81 def testAsDict(self): 112 def testAsDict(self):
82 v = list_of_scalar_values.ListOfScalarValues( 113 v = list_of_scalar_values.ListOfScalarValues(
83 None, 'x', 'unit', [1, 2], 114 None, 'x', 'unit', [1, 2],
84 same_page_merge_policy=value.PICK_FIRST, important=False) 115 same_page_merge_policy=value.PICK_FIRST, important=False)
85 d = v.AsDictWithoutBaseClassEntries() 116 d = v.AsDictWithoutBaseClassEntries()
86 117
87 self.assertEquals(d, { 118 self.assertEquals(d, {
88 'values': [1, 2] 119 'values': [1, 2]
89 }) 120 })
90 121
122 def testNoneValueAsDict(self):
123 v = list_of_scalar_values.ListOfScalarValues(
124 None, 'x', 'unit', None, same_page_merge_policy=value.PICK_FIRST,
125 important=False, none_value_reason='n')
126 d = v.AsDictWithoutBaseClassEntries()
127
128 self.assertEquals(d, {
129 'values': None,
130 'none_value_reason': 'n'
131 })
132
91 def testFromDictInts(self): 133 def testFromDictInts(self):
92 d = { 134 d = {
93 'type': 'list_of_scalar_values', 135 'type': 'list_of_scalar_values',
94 'name': 'x', 136 'name': 'x',
95 'units': 'unit', 137 'units': 'unit',
96 'values': [1, 2] 138 'values': [1, 2]
97 } 139 }
98 v = value.Value.FromDict(d, {}) 140 v = value.Value.FromDict(d, {})
99 141
100 self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues)) 142 self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues))
101 self.assertEquals(v.values, [1, 2]) 143 self.assertEquals(v.values, [1, 2])
102 144
103 def testFromDictFloats(self): 145 def testFromDictFloats(self):
104 d = { 146 d = {
105 'type': 'list_of_scalar_values', 147 'type': 'list_of_scalar_values',
106 'name': 'x', 148 'name': 'x',
107 'units': 'unit', 149 'units': 'unit',
108 'values': [1.3, 2.7] 150 'values': [1.3, 2.7]
109 } 151 }
110 v = value.Value.FromDict(d, {}) 152 v = value.Value.FromDict(d, {})
111 153
112 self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues)) 154 self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues))
113 self.assertEquals(v.values, [1.3, 2.7]) 155 self.assertEquals(v.values, [1.3, 2.7])
156
157 def testFromDictNoneValue(self):
158 d = {
159 'type': 'list_of_scalar_values',
160 'name': 'x',
161 'units': 'unit',
162 'values': None,
163 'none_value_reason': 'n'
164 }
165 v = value.Value.FromDict(d, {})
166
167 self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues))
168 self.assertEquals(v.values, None)
169 self.assertEquals(v.none_value_reason, 'n')
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698