Index: tools/telemetry/telemetry/value/list_of_string_values_unittest.py |
diff --git a/tools/telemetry/telemetry/value/list_of_string_values_unittest.py b/tools/telemetry/telemetry/value/list_of_string_values_unittest.py |
index e53022ff8eebf9eaabe398fb837a03b2a0099f82..e4f974e16455754463319e1870618bc69e8d5f2a 100644 |
--- a/tools/telemetry/telemetry/value/list_of_string_values_unittest.py |
+++ b/tools/telemetry/telemetry/value/list_of_string_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_string_values |
+from telemetry.value import none_values |
class TestBase(unittest.TestCase): |
@@ -61,12 +62,13 @@ class ListOfStringValuesTest(TestBase): |
def testListDifferentPageMerging(self): |
page0 = self.pages[0] |
+ page1 = self.pages[0] |
v0 = list_of_string_values.ListOfStringValues( |
page0, 'x', 'label', |
- ['L1', 'L2'], same_page_merge_policy=value.PICK_FIRST) |
+ ['L1', 'L2'], same_page_merge_policy=value.CONCATENATE) |
v1 = list_of_string_values.ListOfStringValues( |
- page0, 'x', 'label', |
- ['L3', 'L4'], same_page_merge_policy=value.PICK_FIRST) |
+ page1, 'x', 'label', |
+ ['L3', 'L4'], same_page_merge_policy=value.CONCATENATE) |
self.assertTrue(v1.IsMergableWith(v0)) |
vM = (list_of_string_values.ListOfStringValues. |
@@ -74,10 +76,38 @@ class ListOfStringValuesTest(TestBase): |
self.assertEquals(None, vM.page) |
self.assertEquals('x', vM.name) |
self.assertEquals('label', 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(['L1', 'L2', 'L3', 'L4'], vM.values) |
+ def testListWithNoneValueMerging(self): |
+ page0 = self.pages[0] |
+ v0 = list_of_string_values.ListOfStringValues( |
+ page0, 'x', 'unit', |
+ ['L1', 'L2'], same_page_merge_policy=value.CONCATENATE) |
+ v1 = list_of_string_values.ListOfStringValues( |
+ page0, 'x', 'unit', |
+ None, same_page_merge_policy=value.CONCATENATE, none_value_reason='n') |
+ self.assertTrue(v1.IsMergableWith(v0)) |
+ |
+ vM = (list_of_string_values.ListOfStringValues. |
+ 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_string_values.ListOfStringValues( |
+ page0, 'x', 'unit', None)) |
+ |
+ def testListWithNoneReasonMustHaveNoneValue(self): |
+ page0 = self.pages[0] |
+ self.assertRaises(none_values.ValueMustHaveNoneValue, |
+ lambda: list_of_string_values.ListOfStringValues( |
+ page0, 'x', 'unit', ['L1', 'L2'], |
+ none_value_reason='n')) |
+ |
def testAsDict(self): |
v = list_of_string_values.ListOfStringValues( |
None, 'x', 'unit', ['foo', 'bar'], |
@@ -88,6 +118,17 @@ class ListOfStringValuesTest(TestBase): |
'values': ['foo', 'bar'] |
}) |
+ def testNoneValueAsDict(self): |
+ v = list_of_string_values.ListOfStringValues( |
+ 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 testFromDict(self): |
d = { |
'type': 'list_of_string_values', |
@@ -99,3 +140,17 @@ class ListOfStringValuesTest(TestBase): |
self.assertTrue(isinstance(v, list_of_string_values.ListOfStringValues)) |
self.assertEquals(v.values, ['foo', 'bar']) |
+ |
+ def testFromDictNoneValue(self): |
+ d = { |
+ 'type': 'list_of_string_values', |
+ 'name': 'x', |
+ 'units': 'unit', |
+ 'values': None, |
+ 'none_value_reason': 'n' |
+ } |
+ v = value.Value.FromDict(d, {}) |
+ |
+ self.assertTrue(isinstance(v, list_of_string_values.ListOfStringValues)) |
+ self.assertEquals(v.values, None) |
+ self.assertEquals(v.none_value_reason, 'n') |