Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Side by Side Diff: telemetry/telemetry/core/discover_unittest.py

Issue 2941123002: [Telemetry] Move discover to common/py_utils (Closed)
Patch Set: fix imports Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « telemetry/telemetry/core/discover.py ('k') | telemetry/telemetry/core/platform.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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.
4 import os
5 import unittest
6
7 from telemetry.core import discover
8 from telemetry.core import util
9
10
11 class DiscoverTest(unittest.TestCase):
12
13 def setUp(self):
14 self._base_dir = util.GetUnittestDataDir()
15 self._start_dir = os.path.join(self._base_dir, 'discoverable_classes')
16 self._base_class = Exception
17
18 def testDiscoverClassesWithIndexByModuleName(self):
19 classes = discover.DiscoverClasses(self._start_dir,
20 self._base_dir,
21 self._base_class,
22 index_by_class_name=False)
23
24 actual_classes = dict((name, cls.__name__)
25 for name, cls in classes.iteritems())
26 expected_classes = {
27 'another_discover_dummyclass': 'DummyExceptionWithParameterImpl1',
28 'discover_dummyclass': 'DummyException',
29 'parameter_discover_dummyclass': 'DummyExceptionWithParameterImpl2'
30 }
31 self.assertEqual(actual_classes, expected_classes)
32
33 def testDiscoverDirectlyConstructableClassesWithIndexByClassName(self):
34 classes = discover.DiscoverClasses(self._start_dir,
35 self._base_dir,
36 self._base_class,
37 directly_constructable=True)
38
39 actual_classes = dict((name, cls.__name__)
40 for name, cls in classes.iteritems())
41 expected_classes = {
42 'dummy_exception': 'DummyException',
43 'dummy_exception_impl1': 'DummyExceptionImpl1',
44 'dummy_exception_impl2': 'DummyExceptionImpl2',
45 }
46 self.assertEqual(actual_classes, expected_classes)
47
48 def testDiscoverClassesWithIndexByClassName(self):
49 classes = discover.DiscoverClasses(self._start_dir, self._base_dir,
50 self._base_class)
51
52 actual_classes = dict((name, cls.__name__)
53 for name, cls in classes.iteritems())
54 expected_classes = {
55 'dummy_exception': 'DummyException',
56 'dummy_exception_impl1': 'DummyExceptionImpl1',
57 'dummy_exception_impl2': 'DummyExceptionImpl2',
58 'dummy_exception_with_parameter_impl1':
59 'DummyExceptionWithParameterImpl1',
60 'dummy_exception_with_parameter_impl2':
61 'DummyExceptionWithParameterImpl2'
62 }
63 self.assertEqual(actual_classes, expected_classes)
64
65 def testDiscoverClassesWithPatternAndIndexByModule(self):
66 classes = discover.DiscoverClasses(self._start_dir,
67 self._base_dir,
68 self._base_class,
69 pattern='another*',
70 index_by_class_name=False)
71
72 actual_classes = dict((name, cls.__name__)
73 for name, cls in classes.iteritems())
74 expected_classes = {
75 'another_discover_dummyclass': 'DummyExceptionWithParameterImpl1'
76 }
77 self.assertEqual(actual_classes, expected_classes)
78
79 def testDiscoverDirectlyConstructableClassesWithPatternAndIndexByClassName(
80 self):
81 classes = discover.DiscoverClasses(self._start_dir,
82 self._base_dir,
83 self._base_class,
84 pattern='another*',
85 directly_constructable=True)
86
87 actual_classes = dict((name, cls.__name__)
88 for name, cls in classes.iteritems())
89 expected_classes = {
90 'dummy_exception_impl1': 'DummyExceptionImpl1',
91 'dummy_exception_impl2': 'DummyExceptionImpl2',
92 }
93 self.assertEqual(actual_classes, expected_classes)
94
95 def testDiscoverClassesWithPatternAndIndexByClassName(self):
96 classes = discover.DiscoverClasses(self._start_dir,
97 self._base_dir,
98 self._base_class,
99 pattern='another*')
100
101 actual_classes = dict((name, cls.__name__)
102 for name, cls in classes.iteritems())
103 expected_classes = {
104 'dummy_exception_impl1': 'DummyExceptionImpl1',
105 'dummy_exception_impl2': 'DummyExceptionImpl2',
106 'dummy_exception_with_parameter_impl1':
107 'DummyExceptionWithParameterImpl1',
108 }
109 self.assertEqual(actual_classes, expected_classes)
110
111
112 class ClassWithoutInitDefOne: # pylint: disable=old-style-class, no-init
113 pass
114
115
116 class ClassWithoutInitDefTwo(object):
117 pass
118
119
120 class ClassWhoseInitOnlyHasSelf(object):
121 def __init__(self):
122 pass
123
124
125 class ClassWhoseInitWithDefaultArguments(object):
126 def __init__(self, dog=1, cat=None, cow=None, fud='a'):
127 pass
128
129
130 class ClassWhoseInitWithDefaultArgumentsAndNonDefaultArguments(object):
131 def __init__(self, x, dog=1, cat=None, fish=None, fud='a'):
132 pass
133
134
135 class IsDirectlyConstructableTest(unittest.TestCase):
136
137 def testIsDirectlyConstructableReturnsTrue(self):
138 self.assertTrue(discover.IsDirectlyConstructable(ClassWithoutInitDefOne))
139 self.assertTrue(discover.IsDirectlyConstructable(ClassWithoutInitDefTwo))
140 self.assertTrue(discover.IsDirectlyConstructable(ClassWhoseInitOnlyHasSelf))
141 self.assertTrue(
142 discover.IsDirectlyConstructable(ClassWhoseInitWithDefaultArguments))
143
144 def testIsDirectlyConstructableReturnsFalse(self):
145 self.assertFalse(
146 discover.IsDirectlyConstructable(
147 ClassWhoseInitWithDefaultArgumentsAndNonDefaultArguments))
OLDNEW
« no previous file with comments | « telemetry/telemetry/core/discover.py ('k') | telemetry/telemetry/core/platform.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698