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

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

Issue 2414523002: [Findit] Reorganizing findit_for_*.py (Closed)
Patch Set: trying to fix some tests Created 4 years, 2 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
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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 77
78 result = Result(self.GetDummyChangeLog(), '') 78 result = Result(self.GetDummyChangeLog(), '')
79 self.assertEqual(classifier.Classify([result], CallStack(0)), 79 project_name, project_path = classifier.Classify([result], CallStack(0))
80 '') 80 self.assertEqual(project_name, '')
81 81
82 def testClassifyRankFunction(self): 82 def testClassifyRankFunction(self):
83 classifier = ProjectClassifier() 83 classifier = ProjectClassifier()
84 84
85 result1 = Result(self.GetDummyChangeLog(), 'src/') 85 result1 = Result(self.GetDummyChangeLog(), 'src/')
86 result1.file_to_stack_infos = { 86 result1.file_to_stack_infos = {
87 'comp1.cc': [ 87 'comp1.cc': [
88 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0) 88 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0)
89 ] 89 ]
90 } 90 }
(...skipping 22 matching lines...) Expand all
113 crash_stack.extend([ 113 crash_stack.extend([
114 StackFrame(0, '', 'android.a.f', 'android/a/cc', 114 StackFrame(0, '', 'android.a.f', 'android/a/cc',
115 'android/a.java', [2]), 115 'android/a.java', [2]),
116 StackFrame(1, '', 'org.chromium.c', 'org/chromium/c.java', 116 StackFrame(1, '', 'org.chromium.c', 'org/chromium/c.java',
117 'org/chromium/c.java', [8]) 117 'org/chromium/c.java', [8])
118 ]) 118 ])
119 119
120 self.assertEqual(classifier.Classify([], crash_stack), 120 self.assertEqual(classifier.Classify([], crash_stack),
121 'chromium') 121 'chromium')
122 122
123 # TODO(wrengr): what's the point of this? we're just testing that
124 # mocking does in fact mock.
123 def testClassifyReturnsNone(self): 125 def testClassifyReturnsNone(self):
124 def _MockClassify(*_, **args): 126 self.mock(ProjectClassifier, 'Classify', lambda *_: None)
125 self.assertIsNotNone(args) 127 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 128
134 def testProjectClassifierDoNotHaveConfig(self): 129 def testProjectClassifierDoNotHaveConfig(self):
135 crash_config = CrashConfig.Get() 130 crash_config = CrashConfig.Get()
136 crash_config.project_classifier = {} 131 crash_config.project_classifier = {}
137 crash_config.put() 132 crash_config.put()
138 133
139 crash_stack = CallStack(0) 134 crash_stack = CallStack(0)
140 crash_stack.extend([ 135 crash_stack.extend([
141 StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 136 StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]),
142 StackFrame(1, 'src/', 'ff', 'comp1.cc', 'src/comp1.cc', [21]), 137 StackFrame(1, 'src/', 'ff', 'comp1.cc', 'src/comp1.cc', [21]),
143 StackFrame(2, 'src/', 'func2', 'comp2.cc', 'src/comp2.cc', [8]) 138 StackFrame(2, 'src/', 'func2', 'comp2.cc', 'src/comp2.cc', [8])
144 ]) 139 ])
145 140
146 result1 = Result(self.GetDummyChangeLog(), 'src/') 141 result1 = Result(self.GetDummyChangeLog(), 'src/')
147 result1.file_to_stack_infos = { 142 result1.file_to_stack_infos = {
148 'comp1.cc': [ 143 'comp1.cc': [
149 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0) 144 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0)
150 ] 145 ]
151 } 146 }
152 147
153 self.assertEqual(ProjectClassifier().Classify([result1], crash_stack), '') 148 self.assertIsNone(ProjectClassifier().Classify([result1], crash_stack))
154 149
155 def testSortHosts(self): 150 def testSortHosts(self):
156 host_list = [ 151 host_list = [
157 'src/', 152 'src/',
158 'src/chrome/browser/resources/', 153 'src/chrome/browser/resources/',
159 'src/media/', 154 'src/media/',
160 'src/sdch/', 155 'src/sdch/',
161 'src/testing/', 156 'src/testing/',
162 'src/third_party/WebKit/', 157 'src/third_party/WebKit/',
163 'src/third_party/', 158 'src/third_party/',
(...skipping 12 matching lines...) Expand all
176 'src/sdch/', 171 'src/sdch/',
177 'src/testing/', 172 'src/testing/',
178 'src/third_party/', 173 'src/third_party/',
179 'src/tools/', 174 'src/tools/',
180 'src/' 175 'src/'
181 ] 176 ]
182 177
183 self.assertEqual( 178 self.assertEqual(
184 ProjectClassifier().project_classifier_config['host_directories'], 179 ProjectClassifier().project_classifier_config['host_directories'],
185 expected_sorted_host_list) 180 expected_sorted_host_list)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698