Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / util / classes_unittest.py
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.
4
5 import unittest
6
7 from telemetry.util import classes
8
9
10 class ClassWithoutInitDefOne: # pylint: disable=W0232
11   pass
12
13
14 class ClassWithoutInitDefTwo(object):
15   pass
16
17
18 class ClassWhoseInitOnlyHasSelf(object):
19   def __init__(self):
20     pass
21
22
23 class ClassWhoseInitWithDefaultArguments(object):
24   def __init__(self, dog=1, cat=None, cow=None, fud='a'):
25     pass
26
27
28 class ClassWhoseInitWithDefaultArgumentsAndNonDefaultArguments(object):
29   def __init__(self, x, dog=1, cat=None, fish=None, fud='a'):
30     pass
31
32
33 class ClassesUnitTest(unittest.TestCase):
34
35   def testIsDirectlyConstructableReturnsTrue(self):
36     self.assertTrue(classes.IsDirectlyConstructable(ClassWithoutInitDefOne))
37     self.assertTrue(classes.IsDirectlyConstructable(ClassWithoutInitDefTwo))
38     self.assertTrue(classes.IsDirectlyConstructable(ClassWhoseInitOnlyHasSelf))
39     self.assertTrue(
40         classes.IsDirectlyConstructable(ClassWhoseInitWithDefaultArguments))
41
42   def testIsDirectlyConstructableReturnsFalse(self):
43     self.assertFalse(
44         classes.IsDirectlyConstructable(
45             ClassWhoseInitWithDefaultArgumentsAndNonDefaultArguments))