Index: tools/telemetry/telemetry/value/value_unittest.py |
diff --git a/tools/telemetry/telemetry/value/value_unittest.py b/tools/telemetry/telemetry/value/value_unittest.py |
index a7ea0a116b52f099c7411fd905e2fab9f2fc7b8d..84cbd1281a860a384caeb242b2eddaa4b6b75b83 100644 |
--- a/tools/telemetry/telemetry/value/value_unittest.py |
+++ b/tools/telemetry/telemetry/value/value_unittest.py |
@@ -44,15 +44,25 @@ class ValueForTest(value.Value): |
def GetRepresentativeString(self): |
pass |
- @classmethod |
- def GetJSONTypeName(cls): |
+ @staticmethod |
+ def GetJSONTypeName(): |
pass |
class ValueForAsDictTest(ValueForTest): |
- @classmethod |
- def GetJSONTypeName(cls): |
+ @staticmethod |
+ def GetJSONTypeName(): |
return 'baz' |
+class ValueForFromDictTest(ValueForTest): |
+ @staticmethod |
+ def FromDict(value_dict, page_dict): |
+ kwargs = value.Value.GetConstructorKwArgs(value_dict, page_dict) |
+ return ValueForFromDictTest(**kwargs) |
+ |
+ @staticmethod |
+ def GetJSONTypeName(): |
+ return 'value_for_from_dict_test' |
+ |
class ValueTest(TestBase): |
def testCompat(self): |
page0 = self.pages[0] |
@@ -85,7 +95,7 @@ class ValueTest(TestBase): |
self.assertEquals(d, { |
'name': 'x', |
'type': 'baz', |
- 'unit': 'unit', |
+ 'units': 'unit', |
}) |
def testAsDictWithPage(self): |
@@ -112,3 +122,77 @@ class ValueTest(TestBase): |
def testAsDictWithoutDescription(self): |
v = ValueForAsDictTest(None, 'x', 'unit', important=False, description=None) |
self.assertNotIn('description', v.AsDict()) |
+ |
+ def testFromDictBaseKeys(self): |
+ d = { |
+ 'type': 'value_for_from_dict_test', |
+ 'name': 'x', |
+ 'units': 'unit' |
+ } |
+ |
+ v = value.Value.FromDict(d, None) |
+ self.assertEquals(v.name, 'x') |
+ self.assertTrue(isinstance(v, ValueForFromDictTest)) |
+ self.assertEquals(v.units, 'unit') |
+ |
+ def testFromDictWithPage(self): |
+ page0 = self.pages[0] |
+ page_dict = {page0.id: page0} |
+ |
+ d = { |
+ 'type': 'value_for_from_dict_test', |
+ 'name': 'x', |
+ 'units': 'unit', |
+ 'page_id': page0.id |
+ } |
+ |
+ v = value.Value.FromDict(d, page_dict) |
+ |
+ self.assertEquals(v.page.id, page0.id) |
+ |
+ def testFromDictWithoutPage(self): |
+ d = { |
+ 'type': 'value_for_from_dict_test', |
+ 'name': 'x', |
+ 'units': 'unit' |
+ } |
+ |
+ v = value.Value.FromDict(d, {}) |
+ |
+ self.assertEquals(v.page, None) |
+ |
+ def testFromDictWithDescription(self): |
+ d = { |
+ 'type': 'value_for_from_dict_test', |
+ 'name': 'x', |
+ 'units': 'unit', |
+ 'description': 'foo' |
+ } |
+ |
+ v = value.Value.FromDict(d, {}) |
+ self.assertEquals(v.description, 'foo') |
+ |
+ def testFromDictWithoutDescription(self): |
+ d = { |
+ 'type': 'value_for_from_dict_test', |
+ 'name': 'x', |
+ 'units': 'unit' |
+ } |
+ |
+ v = value.Value.FromDict(d, {}) |
+ self.assertEquals(v.description, None) |
+ |
+ def testListOfValuesFromListOfDicts(self): |
+ d0 = { |
+ 'type': 'value_for_from_dict_test', |
+ 'name': 'x', |
+ 'units': 'unit' |
+ } |
+ d1 = { |
+ 'type': 'value_for_from_dict_test', |
+ 'name': 'y', |
+ 'units': 'unit' |
+ } |
+ vs = value.Value.ListOfValuesFromListOfDicts([d0, d1], {}) |
+ self.assertEquals(vs[0].name, 'x') |
+ self.assertEquals(vs[1].name, 'y') |