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

Side by Side Diff: tools/telemetry/telemetry/value/list_of_string_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 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 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_string_values 9 from telemetry.value import list_of_string_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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
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('label', vM.units) 58 self.assertEquals('label', 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(['L1', 'L2'], vM.values) 61 self.assertEquals(['L1', 'L2'], vM.values)
61 62
62 def testListDifferentPageMerging(self): 63 def testListDifferentPageMerging(self):
63 page0 = self.pages[0] 64 page0 = self.pages[0]
65 page1 = self.pages[0]
64 v0 = list_of_string_values.ListOfStringValues( 66 v0 = list_of_string_values.ListOfStringValues(
65 page0, 'x', 'label', 67 page0, 'x', 'label',
66 ['L1', 'L2'], same_page_merge_policy=value.PICK_FIRST) 68 ['L1', 'L2'], same_page_merge_policy=value.CONCATENATE)
67 v1 = list_of_string_values.ListOfStringValues( 69 v1 = list_of_string_values.ListOfStringValues(
68 page0, 'x', 'label', 70 page1, 'x', 'label',
69 ['L3', 'L4'], same_page_merge_policy=value.PICK_FIRST) 71 ['L3', 'L4'], same_page_merge_policy=value.CONCATENATE)
70 self.assertTrue(v1.IsMergableWith(v0)) 72 self.assertTrue(v1.IsMergableWith(v0))
71 73
72 vM = (list_of_string_values.ListOfStringValues. 74 vM = (list_of_string_values.ListOfStringValues.
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('label', vM.units) 78 self.assertEquals('label', 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(['L1', 'L2', 'L3', 'L4'], vM.values) 81 self.assertEquals(['L1', 'L2', 'L3', 'L4'], vM.values)
80 82
83 def testListWithNoneValueMerging(self):
84 page0 = self.pages[0]
85 v0 = list_of_string_values.ListOfStringValues(
86 page0, 'x', 'unit',
87 ['L1', 'L2'], same_page_merge_policy=value.CONCATENATE)
88 v1 = list_of_string_values.ListOfStringValues(
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_string_values.ListOfStringValues.
94 MergeLikeValuesFromSamePage([v0, v1]))
95 self.assertEquals(None, vM.values)
96 self.assertEquals(none_values.MERGE_FAILURE_REASON, vM.none_value_reason)
97
98 def testListWithNoneValueMustHaveNoneReason(self):
99 page0 = self.pages[0]
100 self.assertRaises(none_values.NoneValueMissingReason,
101 lambda: list_of_string_values.ListOfStringValues(
102 page0, 'x', 'unit', None))
103
104 def testListWithNoneReasonMustHaveNoneValue(self):
105 page0 = self.pages[0]
106 self.assertRaises(none_values.ValueMustHaveNoneValue,
107 lambda: list_of_string_values.ListOfStringValues(
108 page0, 'x', 'unit', ['L1', 'L2'],
109 none_value_reason='n'))
110
81 def testAsDict(self): 111 def testAsDict(self):
82 v = list_of_string_values.ListOfStringValues( 112 v = list_of_string_values.ListOfStringValues(
83 None, 'x', 'unit', ['foo', 'bar'], 113 None, 'x', 'unit', ['foo', 'bar'],
84 same_page_merge_policy=value.PICK_FIRST, important=False) 114 same_page_merge_policy=value.PICK_FIRST, important=False)
85 d = v.AsDictWithoutBaseClassEntries() 115 d = v.AsDictWithoutBaseClassEntries()
86 116
87 self.assertEquals(d, { 117 self.assertEquals(d, {
88 'values': ['foo', 'bar'] 118 'values': ['foo', 'bar']
89 }) 119 })
90 120
121 def testNoneValueAsDict(self):
122 v = list_of_string_values.ListOfStringValues(
123 None, 'x', 'unit', None, same_page_merge_policy=value.PICK_FIRST,
124 important=False, none_value_reason='n')
125 d = v.AsDictWithoutBaseClassEntries()
126
127 self.assertEquals(d, {
128 'values': None,
129 'none_value_reason': 'n'
130 })
131
91 def testFromDict(self): 132 def testFromDict(self):
92 d = { 133 d = {
93 'type': 'list_of_string_values', 134 'type': 'list_of_string_values',
94 'name': 'x', 135 'name': 'x',
95 'units': 'unit', 136 'units': 'unit',
96 'values': ['foo', 'bar'] 137 'values': ['foo', 'bar']
97 } 138 }
98 v = value.Value.FromDict(d, {}) 139 v = value.Value.FromDict(d, {})
99 140
100 self.assertTrue(isinstance(v, list_of_string_values.ListOfStringValues)) 141 self.assertTrue(isinstance(v, list_of_string_values.ListOfStringValues))
101 self.assertEquals(v.values, ['foo', 'bar']) 142 self.assertEquals(v.values, ['foo', 'bar'])
143
144 def testFromDictNoneValue(self):
145 d = {
146 'type': 'list_of_string_values',
147 'name': 'x',
148 'units': 'unit',
149 'values': None,
150 'none_value_reason': 'n'
151 }
152 v = value.Value.FromDict(d, {})
153
154 self.assertTrue(isinstance(v, list_of_string_values.ListOfStringValues))
155 self.assertEquals(v.values, None)
156 self.assertEquals(v.none_value_reason, 'n')
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698