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.
7 from telemetry.util import classes
10 class ClassWithoutInitDefOne: # pylint: disable=W0232
14 class ClassWithoutInitDefTwo(object):
18 class ClassWhoseInitOnlyHasSelf(object):
23 class ClassWhoseInitWithDefaultArguments(object):
24 def __init__(self, dog=1, cat=None, cow=None, fud='a'):
28 class ClassWhoseInitWithDefaultArgumentsAndNonDefaultArguments(object):
29 def __init__(self, x, dog=1, cat=None, fish=None, fud='a'):
33 class ClassesUnitTest(unittest.TestCase):
35 def testIsDirectlyConstructableReturnsTrue(self):
36 self.assertTrue(classes.IsDirectlyConstructable(ClassWithoutInitDefOne))
37 self.assertTrue(classes.IsDirectlyConstructable(ClassWithoutInitDefTwo))
38 self.assertTrue(classes.IsDirectlyConstructable(ClassWhoseInitOnlyHasSelf))
40 classes.IsDirectlyConstructable(ClassWhoseInitWithDefaultArguments))
42 def testIsDirectlyConstructableReturnsFalse(self):
44 classes.IsDirectlyConstructable(
45 ClassWhoseInitWithDefaultArgumentsAndNonDefaultArguments))