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 MergeLikeValuesFromSamePage(cls, values): assert len(values) > 0 v0 = values[0] return list_of_string_values.ListOfStringValues( v0.page, v0.name, v0.units, [v.value for v in values], important=v0.important)
def testListDifferentPageMerging(self): page0 = self.pages[0] v0 = list_of_string_values.ListOfStringValues( page0, 'x', 'label', ['L1', 'L2'], same_page_merge_policy=value.PICK_FIRST) v1 = list_of_string_values.ListOfStringValues( page0, 'x', 'label', ['L3', 'L4'], same_page_merge_policy=value.PICK_FIRST) self.assertTrue(v1.IsMergableWith(v0)) vM = (list_of_string_values.ListOfStringValues. MergeLikeValuesFromDifferentPages([v0, v1])) 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(True, vM.important) self.assertEquals(['L1', 'L2', 'L3', 'L4'], vM.values)
def testListSamePageMergingWithSamePageConcatenatePolicy(self): page0 = self.pages[0] v0 = list_of_string_values.ListOfStringValues( page0, 'x', 'label', ['L1','L2'], same_page_merge_policy=value.CONCATENATE) v1 = list_of_string_values.ListOfStringValues( page0, 'x', 'label', ['L3','L4'], same_page_merge_policy=value.CONCATENATE) self.assertTrue(v1.IsMergableWith(v0)) vM = (list_of_string_values.ListOfStringValues. MergeLikeValuesFromSamePage([v0, v1])) self.assertEquals(page0, vM.page) self.assertEquals('x', vM.name) self.assertEquals('label', vM.units) self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy) self.assertEquals(True, vM.important) self.assertEquals(['L1', 'L2', 'L3', 'L4'], vM.values)
def testAsDict(self): v = list_of_string_values.ListOfStringValues( None, 'x', 'unit', ['foo', 'bar'], same_page_merge_policy=value.PICK_FIRST, important=False) d = v.AsDictWithoutBaseClassEntries() self.assertEquals(d, { '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 _MergeLikeValues(cls, values, page, name, tir_label): v0 = values[0] merged_value = [v.value for v in values] none_value_reason = None if None in merged_value: merged_value = None none_value_reason = none_values.MERGE_FAILURE_REASON return list_of_string_values.ListOfStringValues( page, name, v0.units, merged_value, important=v0.important, tir_label=tir_label, none_value_reason=none_value_reason)
def MergeLikeValuesFromDifferentPages(cls, values, group_by_name_suffix=False): assert len(values) > 0 v0 = values[0] if not group_by_name_suffix: name = v0.name else: name = v0.name_suffix return list_of_string_values.ListOfStringValues( None, name, v0.units, [v.value for v in values], important=v0.important)
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 testListWithNoneValueMustHaveNoneReason(self): page0 = self.pages[0] self.assertRaises( none_values.NoneValueMissingReason, lambda: list_of_string_values.ListOfStringValues( page0, 'x', 'unit', None))