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

Side by Side Diff: appengine/findit/handlers/test/handlers_util_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 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 handlers import handlers_util 5 from handlers import handlers_util
6 from handlers import result_status 6 from handlers import result_status
7 from model import wf_analysis_status 7 from model import analysis_status
8 from model.wf_analysis import WfAnalysis 8 from model.wf_analysis import WfAnalysis
9 from model.wf_swarming_task import WfSwarmingTask 9 from model.wf_swarming_task import WfSwarmingTask
10 from model.wf_try_job import WfTryJob 10 from model.wf_try_job import WfTryJob
11 from waterfall.test import wf_testcase 11 from waterfall.test import wf_testcase
12 12
13 13
14 class HandlersUtilResultTest(wf_testcase.WaterfallTestCase): 14 class HandlersUtilResultTest(wf_testcase.WaterfallTestCase):
15 15
16 def setUp(self): 16 def setUp(self):
17 super(HandlersUtilResultTest, self).setUp() 17 super(HandlersUtilResultTest, self).setUp()
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 'step2': { 145 'step2': {
146 'test1': '%s/%s/%s' % ( 146 'test1': '%s/%s/%s' % (
147 self.master_name, self.builder_name, self.build_number) 147 self.master_name, self.builder_name, self.build_number)
148 } 148 }
149 } 149 }
150 analysis.put() 150 analysis.put()
151 151
152 task0 = WfSwarmingTask.Create( 152 task0 = WfSwarmingTask.Create(
153 self.master_name, self.builder_name, 120, 'step1 on platform') 153 self.master_name, self.builder_name, 120, 'step1 on platform')
154 task0.task_id = 'task0' 154 task0.task_id = 'task0'
155 task0.status = wf_analysis_status.ANALYZED 155 task0.status = analysis_status.COMPLETED
156 task0.parameters = { 156 task0.parameters = {
157 'tests': ['test1'] 157 'tests': ['test1']
158 } 158 }
159 task0.tests_statuses = { 159 task0.tests_statuses = {
160 'test1': { 160 'test1': {
161 'total_run': 2, 161 'total_run': 2,
162 'FAILURE': 2 162 'FAILURE': 2
163 } 163 }
164 } 164 }
165 task0.put() 165 task0.put()
166 166
167 task1 = WfSwarmingTask.Create( 167 task1 = WfSwarmingTask.Create(
168 self.master_name, self.builder_name, self.build_number, 168 self.master_name, self.builder_name, self.build_number,
169 'step1 on platform') 169 'step1 on platform')
170 task1.task_id = 'task1' 170 task1.task_id = 'task1'
171 task1.status = wf_analysis_status.ANALYZED 171 task1.status = analysis_status.COMPLETED
172 task1.parameters = { 172 task1.parameters = {
173 'tests': ['test2', 'test3', 'test4'] 173 'tests': ['test2', 'test3', 'test4']
174 } 174 }
175 task1.tests_statuses = { 175 task1.tests_statuses = {
176 'test2': { 176 'test2': {
177 'total_run': 2, 177 'total_run': 2,
178 'FAILURE': 2 178 'FAILURE': 2
179 }, 179 },
180 'test3': { 180 'test3': {
181 'total_run': 4, 181 'total_run': 4,
(...skipping 12 matching lines...) Expand all
194 task2.put() 194 task2.put()
195 195
196 data = handlers_util.GetSwarmingTaskInfo( 196 data = handlers_util.GetSwarmingTaskInfo(
197 self.master_name, self.builder_name, self.build_number) 197 self.master_name, self.builder_name, self.build_number)
198 198
199 expected_data = { 199 expected_data = {
200 'step1 on platform': { 200 'step1 on platform': {
201 'swarming_tasks': { 201 'swarming_tasks': {
202 'm/b/121': { 202 'm/b/121': {
203 'task_info': { 203 'task_info': {
204 'status': wf_analysis_status.ANALYZED, 204 'status': analysis_status.COMPLETED,
205 'task_id': 'task1', 205 'task_id': 'task1',
206 'task_url': ('https://chromium-swarm.appspot.com/user' 206 'task_url': ('https://chromium-swarm.appspot.com/user'
207 '/task/task1') 207 '/task/task1')
208 }, 208 },
209 'all_tests': ['test2', 'test3', 'test4'], 209 'all_tests': ['test2', 'test3', 'test4'],
210 'reliable_tests': ['test2'], 210 'reliable_tests': ['test2'],
211 'flaky_tests': ['test3', 'test4'], 211 'flaky_tests': ['test3', 'test4'],
212 'ref_name': 'step1' 212 'ref_name': 'step1'
213 }, 213 },
214 'm/b/120': { 214 'm/b/120': {
215 'task_info': { 215 'task_info': {
216 'status': wf_analysis_status.ANALYZED, 216 'status': analysis_status.COMPLETED,
217 'task_id': 'task0', 217 'task_id': 'task0',
218 'task_url': ('https://chromium-swarm.appspot.com/user/' 218 'task_url': ('https://chromium-swarm.appspot.com/user/'
219 'task/task0') 219 'task/task0')
220 }, 220 },
221 'all_tests': ['test1'], 221 'all_tests': ['test1'],
222 'reliable_tests': ['test1'], 222 'reliable_tests': ['test1'],
223 'flaky_tests': [], 223 'flaky_tests': [],
224 'ref_name': 'step1' 224 'ref_name': 'step1'
225 } 225 }
226 } 226 }
227 }, 227 },
228 'step2': { 228 'step2': {
229 'swarming_tasks': { 229 'swarming_tasks': {
230 'm/b/121': { 230 'm/b/121': {
231 'task_info': { 231 'task_info': {
232 'status': wf_analysis_status.PENDING 232 'status': analysis_status.PENDING
233 }, 233 },
234 'all_tests': ['test1'], 234 'all_tests': ['test1'],
235 'ref_name': 'step2' 235 'ref_name': 'step2'
236 } 236 }
237 } 237 }
238 } 238 }
239 } 239 }
240 self.assertEqual(expected_data, data) 240 self.assertEqual(expected_data, data)
241 241
242 def testGetAllTryJobResultsNoAnalysis(self): 242 def testGetAllTryJobResultsNoAnalysis(self):
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 WfTryJob.Create( 303 WfTryJob.Create(
304 self.master_name, self.builder_name, self.build_number).put() 304 self.master_name, self.builder_name, self.build_number).put()
305 305
306 result = handlers_util._GetTryJobResultForCompile({'compile': 'm/b/121'}) 306 result = handlers_util._GetTryJobResultForCompile({'compile': 'm/b/121'})
307 307
308 expected_result = { 308 expected_result = {
309 'compile': { 309 'compile': {
310 'try_jobs': [ 310 'try_jobs': [
311 { 311 {
312 'try_job_key': 'm/b/121', 312 'try_job_key': 'm/b/121',
313 'status': wf_analysis_status.PENDING 313 'status': analysis_status.PENDING
314 } 314 }
315 ] 315 ]
316 } 316 }
317 } 317 }
318 318
319 self.assertEqual(expected_result, result) 319 self.assertEqual(expected_result, result)
320 320
321 def testGetTryJobResultForCompileOnlyReturnUrlIfStarts(self): 321 def testGetTryJobResultForCompileOnlyReturnUrlIfStarts(self):
322 try_job = WfTryJob.Create( 322 try_job = WfTryJob.Create(
323 self.master_name, self.builder_name, self.build_number) 323 self.master_name, self.builder_name, self.build_number)
324 try_job.status = wf_analysis_status.ANALYZING 324 try_job.status = analysis_status.RUNNING
325 try_job.compile_results = [ 325 try_job.compile_results = [
326 { 326 {
327 'result': None, 327 'result': None,
328 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/' 328 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/'
329 'builders/linux_chromium_variable/builds/121') 329 'builders/linux_chromium_variable/builds/121')
330 } 330 }
331 ] 331 ]
332 try_job.put() 332 try_job.put()
333 333
334 result = handlers_util._GetTryJobResultForCompile({'compile': 'm/b/121'}) 334 result = handlers_util._GetTryJobResultForCompile({'compile': 'm/b/121'})
335 335
336 expected_result = { 336 expected_result = {
337 'compile': { 337 'compile': {
338 'try_jobs': [ 338 'try_jobs': [
339 { 339 {
340 'try_job_key': 'm/b/121', 340 'try_job_key': 'm/b/121',
341 'status': wf_analysis_status.ANALYZING, 341 'status': analysis_status.RUNNING,
342 'try_job_build_number': 121, 342 'try_job_build_number': 121,
343 'try_job_url': ( 343 'try_job_url': (
344 'http://build.chromium.org/p/tryserver.chromium.' 344 'http://build.chromium.org/p/tryserver.chromium.'
345 'linux/builders/linux_chromium_variable/builds/121') 345 'linux/builders/linux_chromium_variable/builds/121')
346 } 346 }
347 ] 347 ]
348 } 348 }
349 } 349 }
350 self.assertEqual(expected_result, result) 350 self.assertEqual(expected_result, result)
351 351
352 def testGetTryJobResultForCompileOnlyReturnStatusIfError(self): 352 def testGetTryJobResultForCompileOnlyReturnStatusIfError(self):
353 try_job = WfTryJob.Create( 353 try_job = WfTryJob.Create(
354 self.master_name, self.builder_name, self.build_number) 354 self.master_name, self.builder_name, self.build_number)
355 try_job.status = wf_analysis_status.ERROR 355 try_job.status = analysis_status.ERROR
356 try_job.compile_results = [ 356 try_job.compile_results = [
357 { 357 {
358 'try_job_id': '1' 358 'try_job_id': '1'
359 } 359 }
360 ] 360 ]
361 try_job.put() 361 try_job.put()
362 362
363 result = handlers_util._GetTryJobResultForCompile({'compile': 'm/b/121'}) 363 result = handlers_util._GetTryJobResultForCompile({'compile': 'm/b/121'})
364 364
365 expected_result = { 365 expected_result = {
366 'compile': { 366 'compile': {
367 'try_jobs': [ 367 'try_jobs': [
368 { 368 {
369 'try_job_key': 'm/b/121', 369 'try_job_key': 'm/b/121',
370 'status': wf_analysis_status.ERROR 370 'status': analysis_status.ERROR
371 } 371 }
372 ] 372 ]
373 } 373 }
374 } 374 }
375 375
376 self.assertEqual(expected_result, result) 376 self.assertEqual(expected_result, result)
377 377
378 def testGetTryJobResultWhenTryJobCompleted(self): 378 def testGetTryJobResultWhenTryJobCompleted(self):
379 analysis = WfAnalysis.Create( 379 analysis = WfAnalysis.Create(
380 self.master_name, self.builder_name, self.build_number) 380 self.master_name, self.builder_name, self.build_number)
381 analysis.failure_result_map = { 381 analysis.failure_result_map = {
382 'compile': 'm/b/121' 382 'compile': 'm/b/121'
383 } 383 }
384 analysis.put() 384 analysis.put()
385 385
386 try_job = WfTryJob.Create( 386 try_job = WfTryJob.Create(
387 self.master_name, self.builder_name, self.build_number) 387 self.master_name, self.builder_name, self.build_number)
388 try_job.status = wf_analysis_status.ANALYZED 388 try_job.status = analysis_status.COMPLETED
389 try_job.compile_results = [ 389 try_job.compile_results = [
390 { 390 {
391 'report': { 391 'report': {
392 'result': { 392 'result': {
393 'rev1': 'passed', 393 'rev1': 'passed',
394 'rev2': 'failed' 394 'rev2': 'failed'
395 } 395 }
396 }, 396 },
397 'try_job_id': 'm/b/121', 397 'try_job_id': 'm/b/121',
398 'url': ('http://build.chromium.org/p/tryserver.chromium.' 398 'url': ('http://build.chromium.org/p/tryserver.chromium.'
(...skipping 10 matching lines...) Expand all
409 try_job.put() 409 try_job.put()
410 410
411 result = handlers_util.GetAllTryJobResults( 411 result = handlers_util.GetAllTryJobResults(
412 self.master_name, self.builder_name, self.build_number) 412 self.master_name, self.builder_name, self.build_number)
413 413
414 expected_result = { 414 expected_result = {
415 'compile': { 415 'compile': {
416 'try_jobs': [ 416 'try_jobs': [
417 { 417 {
418 'try_job_key': 'm/b/121', 418 'try_job_key': 'm/b/121',
419 'status': wf_analysis_status.ANALYZED, 419 'status': analysis_status.COMPLETED,
420 'try_job_build_number': 121, 420 'try_job_build_number': 121,
421 'try_job_url': ( 421 'try_job_url': (
422 'http://build.chromium.org/p/tryserver.chromium.' 422 'http://build.chromium.org/p/tryserver.chromium.'
423 'linux/builders/linux_chromium_variable/builds/121'), 423 'linux/builders/linux_chromium_variable/builds/121'),
424 'culprit': { 424 'culprit': {
425 'revision': 'rev2', 425 'revision': 'rev2',
426 'commit_position': '2', 426 'commit_position': '2',
427 'review_url': 'url_2' 427 'review_url': 'url_2'
428 } 428 }
429 } 429 }
430 ] 430 ]
431 } 431 }
432 } 432 }
433 433
434 self.assertEqual(expected_result, result) 434 self.assertEqual(expected_result, result)
435 435
436 def testGetTryJobResultWhenTryJobCompletedAllPassed(self): 436 def testGetTryJobResultWhenTryJobCompletedAllPassed(self):
437 analysis = WfAnalysis.Create( 437 analysis = WfAnalysis.Create(
438 self.master_name, self.builder_name, self.build_number) 438 self.master_name, self.builder_name, self.build_number)
439 analysis.failure_result_map = { 439 analysis.failure_result_map = {
440 'compile': 'm/b/121' 440 'compile': 'm/b/121'
441 } 441 }
442 analysis.put() 442 analysis.put()
443 443
444 try_job = WfTryJob.Create( 444 try_job = WfTryJob.Create(
445 self.master_name, self.builder_name, self.build_number) 445 self.master_name, self.builder_name, self.build_number)
446 try_job.status = wf_analysis_status.ANALYZED 446 try_job.status = analysis_status.COMPLETED
447 try_job.compile_results = [ 447 try_job.compile_results = [
448 { 448 {
449 'report': { 449 'report': {
450 'result': { 450 'result': {
451 'rev1': 'passed', 451 'rev1': 'passed',
452 'rev2': 'failed' 452 'rev2': 'failed'
453 }, 453 },
454 }, 454 },
455 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/' 455 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/'
456 'builders/linux_chromium_variable/builds/121') 456 'builders/linux_chromium_variable/builds/121')
457 } 457 }
458 ] 458 ]
459 try_job.put() 459 try_job.put()
460 460
461 result = handlers_util.GetAllTryJobResults( 461 result = handlers_util.GetAllTryJobResults(
462 self.master_name, self.builder_name, self.build_number) 462 self.master_name, self.builder_name, self.build_number)
463 463
464 expected_result = { 464 expected_result = {
465 'compile': { 465 'compile': {
466 'try_jobs': [ 466 'try_jobs': [
467 { 467 {
468 'try_job_key': 'm/b/121', 468 'try_job_key': 'm/b/121',
469 'status': wf_analysis_status.ANALYZED, 469 'status': analysis_status.COMPLETED,
470 'try_job_build_number': 121, 470 'try_job_build_number': 121,
471 'try_job_url': ( 471 'try_job_url': (
472 'http://build.chromium.org/p/tryserver.chromium.' 472 'http://build.chromium.org/p/tryserver.chromium.'
473 'linux/builders/linux_chromium_variable/builds/121') 473 'linux/builders/linux_chromium_variable/builds/121')
474 } 474 }
475 ] 475 ]
476 } 476 }
477 } 477 }
478 478
479 self.assertEqual(expected_result, result) 479 self.assertEqual(expected_result, result)
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
557 'test1': 'm/b/118', 557 'test1': 'm/b/118',
558 'test3': 'm/b/119' 558 'test3': 'm/b/119'
559 } 559 }
560 } 560 }
561 561
562 tasks_info = { 562 tasks_info = {
563 'step1': { 563 'step1': {
564 'swarming_tasks': { 564 'swarming_tasks': {
565 'm/b/118': { 565 'm/b/118': {
566 'task_info': { 566 'task_info': {
567 'status': wf_analysis_status.PENDING 567 'status': analysis_status.PENDING
568 }, 568 },
569 'all_tests': ['test1'] 569 'all_tests': ['test1']
570 }, 570 },
571 'm/b/119': { 571 'm/b/119': {
572 'task_info': { 572 'task_info': {
573 'status': wf_analysis_status.ANALYZING, 573 'status': analysis_status.RUNNING,
574 'task_id': 'task3', 574 'task_id': 'task3',
575 'task_url': 'task3_url' 575 'task_url': 'task3_url'
576 }, 576 },
577 'all_tests': ['test3'] 577 'all_tests': ['test3']
578 } 578 }
579 } 579 }
580 } 580 }
581 } 581 }
582 582
583 result = handlers_util._GetAllTryJobResultsForTest( 583 result = handlers_util._GetAllTryJobResultsForTest(
584 failure_result_map, tasks_info) 584 failure_result_map, tasks_info)
585 585
586 expected_result = { 586 expected_result = {
587 'step1': { 587 'step1': {
588 'try_jobs': [ 588 'try_jobs': [
589 { 589 {
590 'try_job_key': 'm/b/118', 590 'try_job_key': 'm/b/118',
591 'status': result_status.NO_TRY_JOB_REASON_MAP[ 591 'status': result_status.NO_TRY_JOB_REASON_MAP[
592 wf_analysis_status.PENDING], 592 analysis_status.PENDING],
593 'tests': ['test1'] 593 'tests': ['test1']
594 }, 594 },
595 { 595 {
596 'try_job_key': 'm/b/119', 596 'try_job_key': 'm/b/119',
597 'status': result_status.NO_TRY_JOB_REASON_MAP[ 597 'status': result_status.NO_TRY_JOB_REASON_MAP[
598 wf_analysis_status.ANALYZING], 598 analysis_status.RUNNING],
599 'task_id': 'task3', 599 'task_id': 'task3',
600 'task_url': 'task3_url', 600 'task_url': 'task3_url',
601 'tests': ['test3'] 601 'tests': ['test3']
602 } 602 }
603 ] 603 ]
604 } 604 }
605 } 605 }
606 self.assertEqual(expected_result, result) 606 self.assertEqual(expected_result, result)
607 607
608 def testUpdateTryJobInfoBasedOnSwarmingAllFlaky(self): 608 def testUpdateTryJobInfoBasedOnSwarmingAllFlaky(self):
609 step_tasks_info = { 609 step_tasks_info = {
610 'swarming_tasks': { 610 'swarming_tasks': {
611 'm/b/119': { 611 'm/b/119': {
612 'task_info': { 612 'task_info': {
613 'status': wf_analysis_status.ANALYZED, 613 'status': analysis_status.COMPLETED,
614 'task_id': 'task1', 614 'task_id': 'task1',
615 'task_url': 'task_url' 615 'task_url': 'task_url'
616 }, 616 },
617 'all_tests': ['test2', 'test3'], 617 'all_tests': ['test2', 'test3'],
618 'reliable_tests': [], 618 'reliable_tests': [],
619 'flaky_tests': ['test2', 'test3'], 619 'flaky_tests': ['test2', 'test3'],
620 'ref_name': 'step1' 620 'ref_name': 'step1'
621 } 621 }
622 } 622 }
623 } 623 }
(...skipping 24 matching lines...) Expand all
648 'step1 on platform': { 648 'step1 on platform': {
649 'test3': 'm/b/119' 649 'test3': 'm/b/119'
650 } 650 }
651 } 651 }
652 652
653 tasks_info = { 653 tasks_info = {
654 'step1 on platform': { 654 'step1 on platform': {
655 'swarming_tasks': { 655 'swarming_tasks': {
656 'm/b/119': { 656 'm/b/119': {
657 'task_info': { 657 'task_info': {
658 'status': wf_analysis_status.ANALYZED, 658 'status': analysis_status.COMPLETED,
659 'task_id': 'task1', 659 'task_id': 'task1',
660 'task_url': ('https://chromium-swarm.appspot.com/user' 660 'task_url': ('https://chromium-swarm.appspot.com/user'
661 '/task/task1') 661 '/task/task1')
662 }, 662 },
663 'all_tests': ['test3'], 663 'all_tests': ['test3'],
664 'reliable_tests': ['test3'], 664 'reliable_tests': ['test3'],
665 'flaky_tests': [], 665 'flaky_tests': [],
666 'ref_name': 'step1' 666 'ref_name': 'step1'
667 } 667 }
668 } 668 }
669 } 669 }
670 } 670 }
671 671
672 try_job = WfTryJob.Create('m', 'b', 119) 672 try_job = WfTryJob.Create('m', 'b', 119)
673 try_job.status = wf_analysis_status.ANALYZED 673 try_job.status = analysis_status.COMPLETED
674 try_job.test_results = [ 674 try_job.test_results = [
675 { 675 {
676 'report': { 676 'report': {
677 'result': { 677 'result': {
678 'rev1': { 678 'rev1': {
679 'step1': { 679 'step1': {
680 'status': 'passed', 680 'status': 'passed',
681 'valid': True 681 'valid': True
682 } 682 }
683 }, 683 },
(...skipping 26 matching lines...) Expand all
710 710
711 result = handlers_util._GetAllTryJobResultsForTest( 711 result = handlers_util._GetAllTryJobResultsForTest(
712 failure_result_map, tasks_info) 712 failure_result_map, tasks_info)
713 713
714 expected_result = { 714 expected_result = {
715 'step1 on platform': { 715 'step1 on platform': {
716 'try_jobs': [ 716 'try_jobs': [
717 { 717 {
718 'ref_name': 'step1', 718 'ref_name': 'step1',
719 'try_job_key': 'm/b/119', 719 'try_job_key': 'm/b/119',
720 'status': wf_analysis_status.ANALYZED, 720 'status': analysis_status.COMPLETED,
721 'try_job_url': ( 721 'try_job_url': (
722 'http://build.chromium.org/p/tryserver.chromium.' 722 'http://build.chromium.org/p/tryserver.chromium.'
723 'linux/builders/linux_chromium_variable/builds/121'), 723 'linux/builders/linux_chromium_variable/builds/121'),
724 'try_job_build_number': 121, 724 'try_job_build_number': 121,
725 'culprit': { 725 'culprit': {
726 'revision': 'rev2', 726 'revision': 'rev2',
727 'commit_position': '2', 727 'commit_position': '2',
728 'review_url': 'url_2' 728 'review_url': 'url_2'
729 }, 729 },
730 'task_id': 'task1', 730 'task_id': 'task1',
(...skipping 14 matching lines...) Expand all
745 'test3': 'm/b/119', 745 'test3': 'm/b/119',
746 'test4': 'm/b/119' 746 'test4': 'm/b/119'
747 } 747 }
748 } 748 }
749 749
750 tasks_info = { 750 tasks_info = {
751 'step1 on platform': { 751 'step1 on platform': {
752 'swarming_tasks': { 752 'swarming_tasks': {
753 'm/b/119': { 753 'm/b/119': {
754 'task_info': { 754 'task_info': {
755 'status': wf_analysis_status.ANALYZED, 755 'status': analysis_status.COMPLETED,
756 'task_id': 'task1', 756 'task_id': 'task1',
757 'task_url': 'url/task1' 757 'task_url': 'url/task1'
758 }, 758 },
759 'all_tests': ['test2', 'test3', 'test4'], 759 'all_tests': ['test2', 'test3', 'test4'],
760 'reliable_tests': ['test2', 'test3'], 760 'reliable_tests': ['test2', 'test3'],
761 'flaky_tests': ['test4'], 761 'flaky_tests': ['test4'],
762 'ref_name': 'step1' 762 'ref_name': 'step1'
763 }, 763 },
764 'm/b/118': { 764 'm/b/118': {
765 'task_info': { 765 'task_info': {
766 'status': result_status.NO_SWARMING_TASK_FOUND 766 'status': result_status.NO_SWARMING_TASK_FOUND
767 }, 767 },
768 'all_tests': ['test1'] 768 'all_tests': ['test1']
769 } 769 }
770 } 770 }
771 } 771 }
772 } 772 }
773 773
774 try_job = WfTryJob.Create('m', 'b', 119) 774 try_job = WfTryJob.Create('m', 'b', 119)
775 try_job.status = wf_analysis_status.ANALYZED 775 try_job.status = analysis_status.COMPLETED
776 try_job.test_results = [ 776 try_job.test_results = [
777 { 777 {
778 'report': { 778 'report': {
779 'result': { 779 'result': {
780 'rev1': { 780 'rev1': {
781 'step1': { 781 'step1': {
782 'status': 'passed', 782 'status': 'passed',
783 'valid': True 783 'valid': True
784 } 784 }
785 }, 785 },
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
820 'try_job_key': 'm/b/118', 820 'try_job_key': 'm/b/118',
821 'status': result_status.NO_TRY_JOB_REASON_MAP.get( 821 'status': result_status.NO_TRY_JOB_REASON_MAP.get(
822 result_status.NO_SWARMING_TASK_FOUND), 822 result_status.NO_SWARMING_TASK_FOUND),
823 'tests': ['test1'] 823 'tests': ['test1']
824 }, 824 },
825 { 825 {
826 'ref_name': 'step1', 826 'ref_name': 'step1',
827 'try_job_key': 'm/b/119', 827 'try_job_key': 'm/b/119',
828 'task_id': 'task1', 828 'task_id': 'task1',
829 'task_url': 'url/task1', 829 'task_url': 'url/task1',
830 'status': wf_analysis_status.ANALYZED, 830 'status': analysis_status.COMPLETED,
831 'try_job_url': ( 831 'try_job_url': (
832 'http://build.chromium.org/p/tryserver.chromium.' 832 'http://build.chromium.org/p/tryserver.chromium.'
833 'linux/builders/linux_chromium_variable/builds/121'), 833 'linux/builders/linux_chromium_variable/builds/121'),
834 'try_job_build_number': 121, 834 'try_job_build_number': 121,
835 'tests': ['test3'], 835 'tests': ['test3'],
836 'culprit': {} 836 'culprit': {}
837 }, 837 },
838 { 838 {
839 'ref_name': 'step1', 839 'ref_name': 'step1',
840 'try_job_key': 'm/b/119', 840 'try_job_key': 'm/b/119',
841 'task_id': 'task1', 841 'task_id': 'task1',
842 'task_url': 'url/task1', 842 'task_url': 'url/task1',
843 'status': wf_analysis_status.ANALYZED, 843 'status': analysis_status.COMPLETED,
844 'try_job_url': ( 844 'try_job_url': (
845 'http://build.chromium.org/p/tryserver.chromium.' 845 'http://build.chromium.org/p/tryserver.chromium.'
846 'linux/builders/linux_chromium_variable/builds/121'), 846 'linux/builders/linux_chromium_variable/builds/121'),
847 'try_job_build_number': 121, 847 'try_job_build_number': 121,
848 'culprit': { 848 'culprit': {
849 'revision': 'rev2', 849 'revision': 'rev2',
850 'commit_position': '2', 850 'commit_position': '2',
851 'review_url': 'url_2' 851 'review_url': 'url_2'
852 }, 852 },
853 'tests': ['test2'] 853 'tests': ['test2']
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 handlers_util._GetCulpritInfoForTryJobResultForTest( 912 handlers_util._GetCulpritInfoForTryJobResultForTest(
913 try_job_key, culprits_info) 913 try_job_key, culprits_info)
914 914
915 expected_culprits_info = { 915 expected_culprits_info = {
916 'step1 on platform': { 916 'step1 on platform': {
917 'try_jobs': [ 917 'try_jobs': [
918 { 918 {
919 'ref_name': 'step1', 919 'ref_name': 'step1',
920 'try_job_key': try_job_key, 920 'try_job_key': try_job_key,
921 'tests': ['test2', 'test3'], 921 'tests': ['test2', 'test3'],
922 'status': wf_analysis_status.PENDING 922 'status': analysis_status.PENDING
923 } 923 }
924 ] 924 ]
925 } 925 }
926 } 926 }
927 self.assertEqual(expected_culprits_info, culprits_info) 927 self.assertEqual(expected_culprits_info, culprits_info)
928 928
929 def testGetCulpritInfoForTryJobResultForTestTryJobRunning(self): 929 def testGetCulpritInfoForTryJobResultForTestTryJobRunning(self):
930 try_job_key = 'm/b/119' 930 try_job_key = 'm/b/119'
931 culprits_info = { 931 culprits_info = {
932 'step1 on platform': { 932 'step1 on platform': {
933 'try_jobs': [ 933 'try_jobs': [
934 { 934 {
935 'ref_name': 'step1', 935 'ref_name': 'step1',
936 'try_job_key': try_job_key, 936 'try_job_key': try_job_key,
937 'tests': ['test2', 'test3'] 937 'tests': ['test2', 'test3']
938 } 938 }
939 ] 939 ]
940 } 940 }
941 } 941 }
942 try_job = WfTryJob.Create('m', 'b', '119') 942 try_job = WfTryJob.Create('m', 'b', '119')
943 try_job.status = wf_analysis_status.ANALYZING 943 try_job.status = analysis_status.RUNNING
944 try_job.test_results = [ 944 try_job.test_results = [
945 { 945 {
946 'url': ('http://build.chromium.org/p/tryserver.chromium.' 946 'url': ('http://build.chromium.org/p/tryserver.chromium.'
947 'linux/builders/linux_chromium_variable/builds/121'), 947 'linux/builders/linux_chromium_variable/builds/121'),
948 'try_job_id': '121' 948 'try_job_id': '121'
949 } 949 }
950 ] 950 ]
951 try_job.put() 951 try_job.put()
952 handlers_util._GetCulpritInfoForTryJobResultForTest( 952 handlers_util._GetCulpritInfoForTryJobResultForTest(
953 try_job_key, culprits_info) 953 try_job_key, culprits_info)
954 954
955 expected_culprits_info = { 955 expected_culprits_info = {
956 'step1 on platform': { 956 'step1 on platform': {
957 'try_jobs': [ 957 'try_jobs': [
958 { 958 {
959 'ref_name': 'step1', 959 'ref_name': 'step1',
960 'try_job_key': try_job_key, 960 'try_job_key': try_job_key,
961 'tests': ['test2', 'test3'], 961 'tests': ['test2', 'test3'],
962 'status': wf_analysis_status.ANALYZING, 962 'status': analysis_status.RUNNING,
963 'try_job_url': ( 963 'try_job_url': (
964 'http://build.chromium.org/p/tryserver.chromium.' 964 'http://build.chromium.org/p/tryserver.chromium.'
965 'linux/builders/linux_chromium_variable/builds/121'), 965 'linux/builders/linux_chromium_variable/builds/121'),
966 'try_job_build_number': 121 966 'try_job_build_number': 121
967 } 967 }
968 ] 968 ]
969 } 969 }
970 } 970 }
971 self.assertEqual(expected_culprits_info, culprits_info) 971 self.assertEqual(expected_culprits_info, culprits_info)
OLDNEW
« no previous file with comments | « appengine/findit/handlers/test/check_duplicate_failures_test.py ('k') | appengine/findit/handlers/test/list_analyses_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698