| OLD | NEW |
| 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 Loading... |
| 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') |
| OLD | NEW |