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

Side by Side Diff: appengine/findit/test/findit_api_test.py

Issue 1866883002: [Findit] A huge refactoring and some bug fixing. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Fix nit. Created 4 years, 8 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 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 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 import json 5 import json
6 6
7 import endpoints 7 import endpoints
8 from google.appengine.api import taskqueue 8 from google.appengine.api import taskqueue
9 9
10 from testing_utils import testing 10 from testing_utils import testing
11 11
12 import findit_api 12 import findit_api
13 from findit_api import FindItApi 13 from findit_api import FindItApi
14 from model.wf_analysis import WfAnalysis 14 from model.wf_analysis import WfAnalysis
15 from model import wf_analysis_status 15 from model import analysis_status
16 from waterfall import waterfall_config 16 from waterfall import waterfall_config
17 17
18 18
19 class FinditApiTest(testing.EndpointsTestCase): 19 class FinditApiTest(testing.EndpointsTestCase):
20 api_service_cls = FindItApi 20 api_service_cls = FindItApi
21 21
22 def setUp(self): 22 def setUp(self):
23 super(FinditApiTest, self).setUp() 23 super(FinditApiTest, self).setUp()
24 self.taskqueue_requests = [] 24 self.taskqueue_requests = []
25 def Mocked_taskqueue_add(**kwargs): 25 def Mocked_taskqueue_add(**kwargs):
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 'builds': [ 102 'builds': [
103 { 103 {
104 'master_url': master_url, 104 'master_url': master_url,
105 'builder_name': builder_name, 105 'builder_name': builder_name,
106 'build_number': build_number 106 'build_number': build_number
107 } 107 }
108 ] 108 ]
109 } 109 }
110 110
111 analysis = WfAnalysis.Create(master_name, builder_name, build_number) 111 analysis = WfAnalysis.Create(master_name, builder_name, build_number)
112 analysis.status = wf_analysis_status.ERROR 112 analysis.status = analysis_status.ERROR
113 analysis.result = { 113 analysis.result = {
114 'failures': [ 114 'failures': [
115 { 115 {
116 'step_name': 'test', 116 'step_name': 'test',
117 'first_failure': 3, 117 'first_failure': 3,
118 'last_pass': 1, 118 'last_pass': 1,
119 'suspected_cls': [ 119 'suspected_cls': [
120 { 120 {
121 'repo_name': 'chromium', 121 'repo_name': 'chromium',
122 'revision': 'git_hash', 122 'revision': 'git_hash',
(...skipping 23 matching lines...) Expand all
146 'builds': [ 146 'builds': [
147 { 147 {
148 'master_url': master_url, 148 'master_url': master_url,
149 'builder_name': builder_name, 149 'builder_name': builder_name,
150 'build_number': build_number 150 'build_number': build_number
151 } 151 }
152 ] 152 ]
153 } 153 }
154 154
155 analysis = WfAnalysis.Create(master_name, builder_name, build_number) 155 analysis = WfAnalysis.Create(master_name, builder_name, build_number)
156 analysis.status = wf_analysis_status.ANALYZING 156 analysis.status = analysis_status.RUNNING
157 analysis.result = None 157 analysis.result = None
158 analysis.put() 158 analysis.put()
159 159
160 expected_result = [] 160 expected_result = []
161 161
162 self._MockMasterIsSupported(supported=True) 162 self._MockMasterIsSupported(supported=True)
163 163
164 response = self.call_api('AnalyzeBuildFailures', body=builds) 164 response = self.call_api('AnalyzeBuildFailures', body=builds)
165 self.assertEqual(200, response.status_int) 165 self.assertEqual(200, response.status_int)
166 self.assertEqual(expected_result, response.json_body.get('results', [])) 166 self.assertEqual(expected_result, response.json_body.get('results', []))
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 { 212 {
213 'repo_name': 'chromium', 213 'repo_name': 'chromium',
214 'revision': 'git_hash', 214 'revision': 'git_hash',
215 'commit_position': 123, 215 'commit_position': 123,
216 } 216 }
217 ] 217 ]
218 }, 218 },
219 ] 219 ]
220 220
221 analysis = WfAnalysis.Create(master_name, builder_name, build_number) 221 analysis = WfAnalysis.Create(master_name, builder_name, build_number)
222 analysis.status = wf_analysis_status.ANALYZING 222 analysis.status = analysis_status.RUNNING
223 analysis.result = analysis_result 223 analysis.result = analysis_result
224 analysis.put() 224 analysis.put()
225 225
226 response = self.call_api('AnalyzeBuildFailures', body=builds) 226 response = self.call_api('AnalyzeBuildFailures', body=builds)
227 self.assertEqual(200, response.status_int) 227 self.assertEqual(200, response.status_int)
228 self.assertEqual(expected_results, response.json_body['results']) 228 self.assertEqual(expected_results, response.json_body['results'])
229 229
230 def testAnalysisFindingNoSuspectedCLsIsNotReturned(self): 230 def testAnalysisFindingNoSuspectedCLsIsNotReturned(self):
231 master_name = 'm' 231 master_name = 'm'
232 builder_name = 'b' 232 builder_name = 'b'
233 build_number = 5 233 build_number = 5
234 234
235 master_url = 'https://build.chromium.org/p/%s' % master_name 235 master_url = 'https://build.chromium.org/p/%s' % master_name
236 builds = { 236 builds = {
237 'builds': [ 237 'builds': [
238 { 238 {
239 'master_url': master_url, 239 'master_url': master_url,
240 'builder_name': builder_name, 240 'builder_name': builder_name,
241 'build_number': build_number 241 'build_number': build_number
242 } 242 }
243 ] 243 ]
244 } 244 }
245 245
246 analysis = WfAnalysis.Create(master_name, builder_name, build_number) 246 analysis = WfAnalysis.Create(master_name, builder_name, build_number)
247 analysis.status = wf_analysis_status.ANALYZED 247 analysis.status = analysis_status.COMPLETED
248 analysis.result = { 248 analysis.result = {
249 'failures': [ 249 'failures': [
250 { 250 {
251 'step_name': 'test', 251 'step_name': 'test',
252 'first_failure': 3, 252 'first_failure': 3,
253 'last_pass': 1, 253 'last_pass': 1,
254 'suspected_cls': [] 254 'suspected_cls': []
255 } 255 }
256 ] 256 ]
257 } 257 }
(...skipping 17 matching lines...) Expand all
275 'builds': [ 275 'builds': [
276 { 276 {
277 'master_url': master_url, 277 'master_url': master_url,
278 'builder_name': builder_name, 278 'builder_name': builder_name,
279 'build_number': build_number 279 'build_number': build_number
280 } 280 }
281 ] 281 ]
282 } 282 }
283 283
284 analysis = WfAnalysis.Create(master_name, builder_name, build_number) 284 analysis = WfAnalysis.Create(master_name, builder_name, build_number)
285 analysis.status = wf_analysis_status.ANALYZED 285 analysis.status = analysis_status.COMPLETED
286 analysis.result = { 286 analysis.result = {
287 'failures': [ 287 'failures': [
288 { 288 {
289 'step_name': 'test', 289 'step_name': 'test',
290 'first_failure': 3, 290 'first_failure': 3,
291 'last_pass': 1, 291 'last_pass': 1,
292 'suspected_cls': [ 292 'suspected_cls': [
293 { 293 {
294 'build_number': 2, 294 'build_number': 2,
295 'repo_name': 'chromium', 295 'repo_name': 'chromium',
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 'builds': [ 357 'builds': [
358 { 358 {
359 'master_url': master_url, 359 'master_url': master_url,
360 'builder_name': builder_name, 360 'builder_name': builder_name,
361 'build_number': build_number 361 'build_number': build_number
362 } 362 }
363 ] 363 ]
364 } 364 }
365 365
366 analysis = WfAnalysis.Create(master_name, builder_name, build_number) 366 analysis = WfAnalysis.Create(master_name, builder_name, build_number)
367 analysis.status = wf_analysis_status.ANALYZED 367 analysis.status = analysis_status.COMPLETED
368 analysis.result = { 368 analysis.result = {
369 'failures': [ 369 'failures': [
370 { 370 {
371 'step_name': 'a', 371 'step_name': 'a',
372 'first_failure': 4, 372 'first_failure': 4,
373 'last_pass': 3, 373 'last_pass': 3,
374 'suspected_cls': [ 374 'suspected_cls': [
375 { 375 {
376 'build_number': 4, 376 'build_number': 4,
377 'repo_name': 'chromium', 377 'repo_name': 'chromium',
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 'master_name': master_name, 546 'master_name': master_name,
547 'builder_name': builder_name, 547 'builder_name': builder_name,
548 'build_number': build_number, 548 'build_number': build_number,
549 'failed_steps': [], 549 'failed_steps': [],
550 }, 550 },
551 ] 551 ]
552 } 552 }
553 self.assertEqual( 553 self.assertEqual(
554 expected_payload_json, 554 expected_payload_json,
555 json.loads(self.taskqueue_requests[0].get('payload'))) 555 json.loads(self.taskqueue_requests[0].get('payload')))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698