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

Side by Side Diff: appengine/findit/crash/test/project_classifier_test.py

Issue 2414523002: [Findit] Reorganizing findit_for_*.py (Closed)
Patch Set: Finally fixed the mock tests! Created 4 years, 1 month 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
OLDNEW
1 # Copyright 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 from crash.stacktrace import StackFrame 5 from crash.stacktrace import StackFrame
6 from crash.stacktrace import CallStack 6 from crash.stacktrace import CallStack
7 from crash.project_classifier import ProjectClassifier 7 from crash.project_classifier import ProjectClassifier
8 from crash.results import Result 8 from crash.results import Result
9 from crash.test.crash_testcase import CrashTestCase 9 from crash.test.crash_testcase import CrashTestCase
10 from crash.type_enums import CallStackLanguageType 10 from crash.type_enums import CallStackLanguageType
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 crash_stack.extend([ 67 crash_stack.extend([
68 StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 68 StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]),
69 StackFrame(1, 'src/', 'ff', 'comp1.cc', 'src/comp1.cc', [21]), 69 StackFrame(1, 'src/', 'ff', 'comp1.cc', 'src/comp1.cc', [21]),
70 StackFrame(2, 'src/', 'func2', 'comp2.cc', 'src/comp2.cc', [8]) 70 StackFrame(2, 'src/', 'func2', 'comp2.cc', 'src/comp2.cc', [8])
71 ]) 71 ])
72 72
73 self.assertEqual(classifier.Classify([], crash_stack), 'chromium') 73 self.assertEqual(classifier.Classify([], crash_stack), 'chromium')
74 74
75 def testClassifyResultsEmpty(self): 75 def testClassifyResultsEmpty(self):
76 classifier = ProjectClassifier() 76 classifier = ProjectClassifier()
77
78 result = Result(self.GetDummyChangeLog(), '') 77 result = Result(self.GetDummyChangeLog(), '')
79 self.assertEqual(classifier.Classify([result], CallStack(0)), 78 self.assertEqual(classifier.Classify([result], CallStack(0)), '')
80 '')
81 79
82 def testClassifyRankFunction(self): 80 def testClassifyRankFunction(self):
83 classifier = ProjectClassifier() 81 classifier = ProjectClassifier()
84 82
85 result1 = Result(self.GetDummyChangeLog(), 'src/') 83 result1 = Result(self.GetDummyChangeLog(), 'src/')
86 result1.file_to_stack_infos = { 84 result1.file_to_stack_infos = {
87 'comp1.cc': [ 85 'comp1.cc': [
88 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0) 86 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0)
89 ] 87 ]
90 } 88 }
(...skipping 22 matching lines...) Expand all
113 crash_stack.extend([ 111 crash_stack.extend([
114 StackFrame(0, '', 'android.a.f', 'android/a/cc', 112 StackFrame(0, '', 'android.a.f', 'android/a/cc',
115 'android/a.java', [2]), 113 'android/a.java', [2]),
116 StackFrame(1, '', 'org.chromium.c', 'org/chromium/c.java', 114 StackFrame(1, '', 'org.chromium.c', 'org/chromium/c.java',
117 'org/chromium/c.java', [8]) 115 'org/chromium/c.java', [8])
118 ]) 116 ])
119 117
120 self.assertEqual(classifier.Classify([], crash_stack), 118 self.assertEqual(classifier.Classify([], crash_stack),
121 'chromium') 119 'chromium')
122 120
121 # TODO(wrengr): what's the point of this? we're just testing that
122 # mocking does in fact mock.
123 def testClassifyReturnsNone(self): 123 def testClassifyReturnsNone(self):
124 def _MockClassify(*_, **args): 124 self.mock(ProjectClassifier, 'Classify', lambda *_: None)
125 self.assertIsNotNone(args) 125 self.assertIsNone(ProjectClassifier().Classify([], CallStack(0)))
126 return None
127
128 self.mock(ProjectClassifier, '_Classify', _MockClassify)
129
130 classifier = ProjectClassifier()
131 self.assertEqual(classifier.Classify([], CallStack(0)),
132 '')
133 126
134 def testProjectClassifierDoNotHaveConfig(self): 127 def testProjectClassifierDoNotHaveConfig(self):
135 crash_config = CrashConfig.Get() 128 crash_config = CrashConfig.Get()
136 crash_config.project_classifier = {} 129 crash_config.project_classifier = {}
137 crash_config.put() 130 crash_config.put()
138 131
139 crash_stack = CallStack(0) 132 crash_stack = CallStack(0)
140 crash_stack.extend([ 133 crash_stack.extend([
141 StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 134 StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]),
142 StackFrame(1, 'src/', 'ff', 'comp1.cc', 'src/comp1.cc', [21]), 135 StackFrame(1, 'src/', 'ff', 'comp1.cc', 'src/comp1.cc', [21]),
143 StackFrame(2, 'src/', 'func2', 'comp2.cc', 'src/comp2.cc', [8]) 136 StackFrame(2, 'src/', 'func2', 'comp2.cc', 'src/comp2.cc', [8])
144 ]) 137 ])
145 138
146 result1 = Result(self.GetDummyChangeLog(), 'src/') 139 result1 = Result(self.GetDummyChangeLog(), 'src/')
147 result1.file_to_stack_infos = { 140 result1.file_to_stack_infos = {
148 'comp1.cc': [ 141 'comp1.cc': [
149 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0) 142 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0)
150 ] 143 ]
151 } 144 }
152 145
153 self.assertEqual(ProjectClassifier().Classify([result1], crash_stack), '') 146 self.assertIsNone(ProjectClassifier().Classify([result1], crash_stack))
154 147
155 def testSortHosts(self): 148 def testSortHosts(self):
156 host_list = [ 149 host_list = [
157 'src/', 150 'src/',
158 'src/chrome/browser/resources/', 151 'src/chrome/browser/resources/',
159 'src/media/', 152 'src/media/',
160 'src/sdch/', 153 'src/sdch/',
161 'src/testing/', 154 'src/testing/',
162 'src/third_party/WebKit/', 155 'src/third_party/WebKit/',
163 'src/third_party/', 156 'src/third_party/',
(...skipping 12 matching lines...) Expand all
176 'src/sdch/', 169 'src/sdch/',
177 'src/testing/', 170 'src/testing/',
178 'src/third_party/', 171 'src/third_party/',
179 'src/tools/', 172 'src/tools/',
180 'src/' 173 'src/'
181 ] 174 ]
182 175
183 self.assertEqual( 176 self.assertEqual(
184 ProjectClassifier().project_classifier_config['host_directories'], 177 ProjectClassifier().project_classifier_config['host_directories'],
185 expected_sorted_host_list) 178 expected_sorted_host_list)
OLDNEW
« no previous file with comments | « appengine/findit/crash/test/occurrence_test.py ('k') | appengine/findit/crash/test/results_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698