Index: tools/telemetry/telemetry/value/list_of_scalar_values_unittest.py |
diff --git a/tools/telemetry/telemetry/value/list_of_scalar_values_unittest.py b/tools/telemetry/telemetry/value/list_of_scalar_values_unittest.py |
index ead32b0f43a53f9e5f519284baaf38ae5a9b5d50..d7895a1ca52202b6cae20e4cde83c98decbdfb3a 100644 |
--- a/tools/telemetry/telemetry/value/list_of_scalar_values_unittest.py |
+++ b/tools/telemetry/telemetry/value/list_of_scalar_values_unittest.py |
@@ -7,6 +7,7 @@ import unittest |
from telemetry import value |
from telemetry.page import page_set |
from telemetry.value import list_of_scalar_values |
+from telemetry.value import none_values |
class TestBase(unittest.TestCase): |
@@ -61,12 +62,13 @@ class ValueTest(TestBase): |
def testListDifferentPageMerging(self): |
page0 = self.pages[0] |
+ page1 = self.pages[1] |
v0 = list_of_scalar_values.ListOfScalarValues( |
page0, 'x', 'unit', |
- [1, 2], same_page_merge_policy=value.PICK_FIRST) |
+ [1, 2], same_page_merge_policy=value.CONCATENATE) |
v1 = list_of_scalar_values.ListOfScalarValues( |
- page0, 'x', 'unit', |
- [3, 4], same_page_merge_policy=value.PICK_FIRST) |
+ page1, 'x', 'unit', |
+ [3, 4], same_page_merge_policy=value.CONCATENATE) |
self.assertTrue(v1.IsMergableWith(v0)) |
vM = (list_of_scalar_values.ListOfScalarValues. |
@@ -74,10 +76,39 @@ class ValueTest(TestBase): |
self.assertEquals(None, vM.page) |
self.assertEquals('x', vM.name) |
self.assertEquals('unit', vM.units) |
- self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy) |
+ self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy) |
self.assertEquals(True, vM.important) |
self.assertEquals([1, 2, 3, 4], vM.values) |
+ def testListWithNoneValueMerging(self): |
+ page0 = self.pages[0] |
+ v0 = list_of_scalar_values.ListOfScalarValues( |
+ page0, 'x', 'unit', |
+ [1, 2], same_page_merge_policy=value.CONCATENATE) |
+ v1 = list_of_scalar_values.ListOfScalarValues( |
+ page0, 'x', 'unit', |
+ None, same_page_merge_policy=value.CONCATENATE, none_value_reason='n') |
+ self.assertTrue(v1.IsMergableWith(v0)) |
+ |
+ vM = (list_of_scalar_values.ListOfScalarValues. |
+ MergeLikeValuesFromSamePage([v0, v1])) |
+ self.assertEquals(None, vM.values) |
+ self.assertEquals(none_values.MERGE_FAILURE_REASON, |
+ vM.none_value_reason) |
+ |
+ def testListWithNoneValueMustHaveNoneReason(self): |
+ page0 = self.pages[0] |
+ self.assertRaises(none_values.NoneValueMissingReason, |
+ lambda: list_of_scalar_values.ListOfScalarValues( |
+ page0, 'x', 'unit', None)) |
+ |
+ def testListWithNoneReasonMustHaveNoneValue(self): |
+ page0 = self.pages[0] |
+ self.assertRaises(none_values.ValueMustHaveNoneValue, |
+ lambda: list_of_scalar_values.ListOfScalarValues( |
+ page0, 'x', 'unit', [1, 2], |
+ none_value_reason='n')) |
+ |
def testAsDict(self): |
v = list_of_scalar_values.ListOfScalarValues( |
None, 'x', 'unit', [1, 2], |
@@ -88,6 +119,17 @@ class ValueTest(TestBase): |
'values': [1, 2] |
}) |
+ def testNoneValueAsDict(self): |
+ v = list_of_scalar_values.ListOfScalarValues( |
+ None, 'x', 'unit', None, same_page_merge_policy=value.PICK_FIRST, |
+ important=False, none_value_reason='n') |
+ d = v.AsDictWithoutBaseClassEntries() |
+ |
+ self.assertEquals(d, { |
+ 'values': None, |
+ 'none_value_reason': 'n' |
+ }) |
+ |
def testFromDictInts(self): |
d = { |
'type': 'list_of_scalar_values', |
@@ -111,3 +153,17 @@ class ValueTest(TestBase): |
self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues)) |
self.assertEquals(v.values, [1.3, 2.7]) |
+ |
+ def testFromDictNoneValue(self): |
+ d = { |
+ 'type': 'list_of_scalar_values', |
+ 'name': 'x', |
+ 'units': 'unit', |
+ 'values': None, |
+ 'none_value_reason': 'n' |
+ } |
+ v = value.Value.FromDict(d, {}) |
+ |
+ self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues)) |
+ self.assertEquals(v.values, None) |
+ self.assertEquals(v.none_value_reason, 'n') |