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
3 # found in the LICENSE file.
10 from telemetry import value
11 from telemetry.page import page_set
12 from telemetry.value import failure
15 class TestBase(unittest.TestCase):
17 self.page_set = page_set.PageSet(file_path=os.path.dirname(__file__))
18 self.page_set.AddPageWithDefaultRunNavigate("http://www.bar.com/")
22 return self.page_set.pages
24 class ValueTest(TestBase):
26 v0 = failure.FailureValue.FromMessage(self.pages[0], 'Failure')
27 self.assertEquals('Exception', v0.name)
29 raise NotImplementedError()
31 v1 = failure.FailureValue(self.pages[0], sys.exc_info())
32 self.assertEquals('NotImplementedError', v1.name)
34 def testBuildbotAndRepresentativeValue(self):
35 v = failure.FailureValue.FromMessage(self.pages[0], 'Failure')
36 self.assertIsNone(v.GetBuildbotValue())
37 self.assertIsNone(v.GetBuildbotDataType(
38 value.COMPUTED_PER_PAGE_SUMMARY_OUTPUT_CONTEXT))
39 self.assertIsNone(v.GetChartAndTraceNameForPerPageResult())
40 self.assertIsNone(v.GetRepresentativeNumber())
41 self.assertIsNone(v.GetRepresentativeString())
44 v = failure.FailureValue.FromMessage(self.pages[0], 'Failure')
45 d = v.AsDictWithoutBaseClassEntries()
46 self.assertTrue(d['value'].find('Exception: Failure') > -1)
48 def testFromDict(self):
50 raise Exception('test')
52 exc_info = sys.exc_info()
55 'name': exc_info[0].__name__,
57 'value': ''.join(traceback.format_exception(*exc_info))
59 v = value.Value.FromDict(d, {})
61 self.assertTrue(isinstance(v, failure.FailureValue))
62 self.assertEquals(v.name, 'Exception')