1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
7 from telemetry import value
8 from telemetry.page import page_set
9 from telemetry.value import scalar
12 class TestBase(unittest.TestCase):
14 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.baz.com/")
17 self.page_set.AddPageWithDefaultRunNavigate("http://www.foo.com/")
21 return self.page_set.pages
23 class ValueTest(TestBase):
24 def testBuildbotValueType(self):
26 v = scalar.ScalarValue(page0, 'x', 'unit', 3, important=True)
27 self.assertEquals('default', v.GetBuildbotDataType(
28 value.COMPUTED_PER_PAGE_SUMMARY_OUTPUT_CONTEXT))
29 self.assertEquals([3], v.GetBuildbotValue())
30 self.assertEquals(('x', page0.display_name),
31 v.GetBuildbotMeasurementAndTraceNameForPerPageResult())
33 v = scalar.ScalarValue(page0, 'x', 'unit', 3, important=False)
36 v.GetBuildbotDataType(value.COMPUTED_PER_PAGE_SUMMARY_OUTPUT_CONTEXT))
38 def testScalarSamePageMerging(self):
40 v0 = scalar.ScalarValue(page0, 'x', 'unit', 1)
41 v1 = scalar.ScalarValue(page0, 'x', 'unit', 2)
42 self.assertTrue(v1.IsMergableWith(v0))
44 vM = scalar.ScalarValue.MergeLikeValuesFromSamePage([v0, v1])
45 self.assertEquals(page0, vM.page)
46 self.assertEquals('x', vM.name)
47 self.assertEquals('unit', vM.units)
48 self.assertEquals(True, vM.important)
49 self.assertEquals([1, 2], vM.values)
51 def testScalarDifferentSiteMerging(self):
54 v0 = scalar.ScalarValue(page0, 'x', 'unit', 1)
55 v1 = scalar.ScalarValue(page1, 'x', 'unit', 2)
57 vM = scalar.ScalarValue.MergeLikeValuesFromDifferentPages([v0, v1])
58 self.assertEquals(None, vM.page)
59 self.assertEquals('x', vM.name)
60 self.assertEquals('unit', vM.units)
61 self.assertEquals(True, vM.important)
62 self.assertEquals([1, 2], vM.values)
65 v = scalar.ScalarValue(None, 'x', 'unit', 42, important=False)
66 d = v.AsDictWithoutBaseClassEntries()
68 self.assertEquals(d, {
72 def testFromDictInt(self):
80 v = value.Value.FromDict(d, {})
82 self.assertTrue(isinstance(v, scalar.ScalarValue))
83 self.assertEquals(v.value, 42)
85 def testFromDictFloat(self):
93 v = value.Value.FromDict(d, {})
95 self.assertTrue(isinstance(v, scalar.ScalarValue))
96 self.assertEquals(v.value, 42.4)