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

Side by Side Diff: appengine/findit/handlers/test/handlers_util_test.py

Issue 1820753002: [Findit] Fix bug when displaying try job result for swamring tests. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: . Created 4 years, 9 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 testing_utils import testing 5 from testing_utils import testing
6 6
7 from handlers import handlers_util 7 from handlers import handlers_util
8 from model.wf_analysis import WfAnalysis 8 from model.wf_analysis import WfAnalysis
9 from model import wf_analysis_status 9 from model import wf_analysis_status
10 from model.wf_swarming_task import WfSwarmingTask 10 from model.wf_swarming_task import WfSwarmingTask
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 analysis.failure_result_map = { 192 analysis.failure_result_map = {
193 'compile': 'm/b/121' 193 'compile': 'm/b/121'
194 } 194 }
195 analysis.put() 195 analysis.put()
196 196
197 result = handlers_util.GetAllTryJobResults( 197 result = handlers_util.GetAllTryJobResults(
198 self.master_name, self.builder_name, self.build_number) 198 self.master_name, self.builder_name, self.build_number)
199 199
200 expected_result = { 200 expected_result = {
201 'compile': { 201 'compile': {
202 'step': 'compile', 202 'step_name': 'compile',
203 'test': 'N/A', 203 'test_name': 'N/A',
204 'try_job_key': 'm/b/121' 204 'try_job_key': 'm/b/121'
205 } 205 }
206 } 206 }
207 207
208 self.assertEqual(expected_result, result) 208 self.assertEqual(expected_result, result)
209 209
210 def testGetTryJobResultOnlyReturnStatusIfPending(self): 210 def testGetTryJobResultOnlyReturnStatusIfPending(self):
211 analysis = WfAnalysis.Create( 211 analysis = WfAnalysis.Create(
212 self.master_name, self.builder_name, self.build_number) 212 self.master_name, self.builder_name, self.build_number)
213 analysis.failure_result_map = { 213 analysis.failure_result_map = {
214 'compile': 'm/b/121' 214 'compile': 'm/b/121'
215 } 215 }
216 analysis.put() 216 analysis.put()
217 217
218 try_job = WfTryJob.Create( 218 try_job = WfTryJob.Create(
219 self.master_name, self.builder_name, self.build_number) 219 self.master_name, self.builder_name, self.build_number)
220 try_job.put() 220 try_job.put()
221 221
222 result = handlers_util.GetAllTryJobResults( 222 result = handlers_util.GetAllTryJobResults(
223 self.master_name, self.builder_name, self.build_number) 223 self.master_name, self.builder_name, self.build_number)
224 224
225 expected_result = { 225 expected_result = {
226 'compile': { 226 'compile': {
227 'step': 'compile', 227 'step_name': 'compile',
228 'test': 'N/A', 228 'test_name': 'N/A',
229 'try_job_key': 'm/b/121', 229 'try_job_key': 'm/b/121',
230 'status': 'Pending' 230 'status': 'Pending'
231 } 231 }
232 } 232 }
233 233
234 self.assertEqual(expected_result, result) 234 self.assertEqual(expected_result, result)
235 235
236 def testGetTryJobResultOnlyReturnUrlIfStarts(self): 236 def testGetTryJobResultOnlyReturnUrlIfStarts(self):
237 analysis = WfAnalysis.Create( 237 analysis = WfAnalysis.Create(
238 self.master_name, self.builder_name, self.build_number) 238 self.master_name, self.builder_name, self.build_number)
(...skipping 12 matching lines...) Expand all
251 'builders/linux_chromium_variable/builds/121') 251 'builders/linux_chromium_variable/builds/121')
252 } 252 }
253 ] 253 ]
254 try_job.put() 254 try_job.put()
255 255
256 result = handlers_util.GetAllTryJobResults( 256 result = handlers_util.GetAllTryJobResults(
257 self.master_name, self.builder_name, self.build_number) 257 self.master_name, self.builder_name, self.build_number)
258 258
259 expected_result = { 259 expected_result = {
260 'compile': { 260 'compile': {
261 'step': 'compile', 261 'step_name': 'compile',
262 'test': 'N/A', 262 'test_name': 'N/A',
263 'try_job_key': 'm/b/121', 263 'try_job_key': 'm/b/121',
264 'status': 'Running', 264 'status': 'Running',
265 'try_job_build_number': 121, 265 'try_job_build_number': 121,
266 'try_job_url': ('http://build.chromium.org/p/tryserver.chromium.' 266 'try_job_url': ('http://build.chromium.org/p/tryserver.chromium.'
267 'linux/builders/linux_chromium_variable/builds/121') 267 'linux/builders/linux_chromium_variable/builds/121')
268 } 268 }
269 } 269 }
270 self.assertEqual(expected_result, result) 270 self.assertEqual(expected_result, result)
271 271
272 def testGetTryJobResultOnlyReturnStatusIfError(self): 272 def testGetTryJobResultOnlyReturnStatusIfError(self):
(...skipping 12 matching lines...) Expand all
285 'try_job_id': '1' 285 'try_job_id': '1'
286 } 286 }
287 ] 287 ]
288 try_job.put() 288 try_job.put()
289 289
290 result = handlers_util.GetAllTryJobResults( 290 result = handlers_util.GetAllTryJobResults(
291 self.master_name, self.builder_name, self.build_number) 291 self.master_name, self.builder_name, self.build_number)
292 292
293 expected_result = { 293 expected_result = {
294 'compile': { 294 'compile': {
295 'step': 'compile', 295 'step_name': 'compile',
296 'test': 'N/A', 296 'test_name': 'N/A',
297 'try_job_key': 'm/b/121', 297 'try_job_key': 'm/b/121',
298 'status': 'Error' 298 'status': 'Error'
299 } 299 }
300 } 300 }
301 301
302 self.assertEqual(expected_result, result) 302 self.assertEqual(expected_result, result)
303 303
304 def testGetTryJobResultWhenTryJobCompleted(self): 304 def testGetTryJobResultWhenTryJobCompleted(self):
305 analysis = WfAnalysis.Create( 305 analysis = WfAnalysis.Create(
306 self.master_name, self.builder_name, self.build_number) 306 self.master_name, self.builder_name, self.build_number)
(...skipping 23 matching lines...) Expand all
330 } 330 }
331 } 331 }
332 ] 332 ]
333 try_job.put() 333 try_job.put()
334 334
335 result = handlers_util.GetAllTryJobResults( 335 result = handlers_util.GetAllTryJobResults(
336 self.master_name, self.builder_name, self.build_number) 336 self.master_name, self.builder_name, self.build_number)
337 337
338 expected_result = { 338 expected_result = {
339 'compile': { 339 'compile': {
340 'step': 'compile', 340 'step_name': 'compile',
341 'test': 'N/A', 341 'test_name': 'N/A',
342 'try_job_key': 'm/b/121', 342 'try_job_key': 'm/b/121',
343 'try_job_build_number': 121, 343 'try_job_build_number': 121,
344 'status': 'Completed', 344 'status': 'Completed',
345 'try_job_url': ( 345 'try_job_url': (
346 'http://build.chromium.org/p/tryserver.chromium.linux/' 346 'http://build.chromium.org/p/tryserver.chromium.linux/'
347 'builders/linux_chromium_variable/builds/121'), 347 'builders/linux_chromium_variable/builds/121'),
348 'revision': 'rev2', 348 'revision': 'rev2',
349 'commit_position': '2', 349 'commit_position': '2',
350 'review_url': 'url_2' 350 'review_url': 'url_2'
351 } 351 }
(...skipping 22 matching lines...) Expand all
374 'builders/linux_chromium_variable/builds/121') 374 'builders/linux_chromium_variable/builds/121')
375 } 375 }
376 ] 376 ]
377 try_job.put() 377 try_job.put()
378 378
379 result = handlers_util.GetAllTryJobResults( 379 result = handlers_util.GetAllTryJobResults(
380 self.master_name, self.builder_name, self.build_number) 380 self.master_name, self.builder_name, self.build_number)
381 381
382 expected_result = { 382 expected_result = {
383 'compile': { 383 'compile': {
384 'step': 'compile', 384 'step_name': 'compile',
385 'test': 'N/A', 385 'test_name': 'N/A',
386 'try_job_key': 'm/b/121', 386 'try_job_key': 'm/b/121',
387 'try_job_build_number': 121, 387 'try_job_build_number': 121,
388 'status': 'Completed', 388 'status': 'Completed',
389 'try_job_url': ( 389 'try_job_url': (
390 'http://build.chromium.org/p/tryserver.chromium.linux/' 390 'http://build.chromium.org/p/tryserver.chromium.linux/'
391 'builders/linux_chromium_variable/builds/121') 391 'builders/linux_chromium_variable/builds/121')
392 } 392 }
393 } 393 }
394 394
395 self.assertEqual(expected_result, result) 395 self.assertEqual(expected_result, result)
396 396
397 def testGetTryJobResultWhenTryJobForTestCompleted(self): 397 def testGetTryJobResultWhenTryJobForTestCompleted(self):
398 analysis = WfAnalysis.Create( 398 analysis = WfAnalysis.Create(
399 self.master_name, self.builder_name, self.build_number) 399 self.master_name, self.builder_name, self.build_number)
400 analysis.failure_result_map = { 400 analysis.failure_result_map = {
401 'a_test': { 401 'a_test on platform': {
402 'a_test1': 'm/b/121', 402 'a_test1': 'm/b/121',
403 'a_test2': 'm/b/121', 403 'a_test2': 'm/b/121',
404 'a_test3': 'm/b/120', 404 'a_test3': 'm/b/120',
405 'a_test4': 'm/b/121' 405 'a_test4': 'm/b/121'
406 }, 406 },
407 'b_test': { 407 'b_test_on_platform': {
408 'b_test1': 'm/b/121' 408 'b_test1': 'm/b/121'
409 }, 409 },
410 'c_test': 'm/b/121', 410 'c_test': 'm/b/121',
411 'd_test': 'm/b/122' 411 'd_test': 'm/b/122'
412 } 412 }
413 analysis.put() 413 analysis.put()
414 414
415 task_120_a = WfSwarmingTask.Create( 415 task_120_a = WfSwarmingTask.Create(
416 self.master_name, self.builder_name, 120, 'a_test') 416 self.master_name, self.builder_name, 120, 'a_test on platform')
417 task_120_a.tests_statuses = { 417 task_120_a.tests_statuses = {
418 'a_test3': { 418 'a_test3': {
419 'total_run': 1, 419 'total_run': 1,
420 'FAILURE': 1 420 'FAILURE': 1
421 } 421 }
422 } 422 }
423 task_120_a.put() 423 task_120_a.put()
424 424
425 task_121_a = WfSwarmingTask.Create( 425 task_121_a = WfSwarmingTask.Create(
426 self.master_name, self.builder_name, self.build_number, 'a_test') 426 self.master_name, self.builder_name, self.build_number,
427 'a_test on platform')
427 task_121_a.tests_statuses = { 428 task_121_a.tests_statuses = {
428 'a_test1': { 429 'a_test1': {
429 'total_run': 1, 430 'total_run': 1,
430 'FAILURE': 1 431 'FAILURE': 1
431 }, 432 },
432 'a_test2': { 433 'a_test2': {
433 'total_run': 1, 434 'total_run': 1,
434 'FAILURE': 1 435 'FAILURE': 1
435 }, 436 },
436 'a_test4': { 437 'a_test4': {
437 'total_run': 1, 438 'total_run': 1,
438 'SUCCESS': 1 439 'SUCCESS': 1
439 } 440 }
440 } 441 }
441 task_121_a.put() 442 task_121_a.put()
442 443
443 task_121_b = WfSwarmingTask.Create( 444 task_121_b = WfSwarmingTask.Create(
444 self.master_name, self.builder_name, self.build_number, 'b_test') 445 self.master_name, self.builder_name, self.build_number,
446 'b_test_on_platform')
445 task_121_b.tests_statuses = { 447 task_121_b.tests_statuses = {
446 'b_test1': { 448 'b_test1': {
447 'total_run': 1, 449 'total_run': 1,
448 'SUCCESS': 1 450 'SUCCESS': 1
449 } 451 }
450 } 452 }
453 task_121_b.parameters = {
454 'ref_name': 'b_test'
455 }
451 task_121_b.put() 456 task_121_b.put()
452 457
453 try_job_120 = WfTryJob.Create( 458 try_job_120 = WfTryJob.Create(
454 self.master_name, self.builder_name, 120) 459 self.master_name, self.builder_name, 120)
455 try_job_120.status = wf_analysis_status.ANALYZED 460 try_job_120.status = wf_analysis_status.ANALYZED
456 try_job_120.test_results = [ 461 try_job_120.test_results = [
457 { 462 {
458 'result': { 463 'result': {
459 'rev0': { 464 'rev0': {
460 'a_test': { 465 'a_test': {
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 'builders/linux_chromium_variable/builds/122'), 559 'builders/linux_chromium_variable/builds/122'),
555 'try_job_id': '2' 560 'try_job_id': '2'
556 } 561 }
557 ] 562 ]
558 try_job_122.put() 563 try_job_122.put()
559 564
560 result = handlers_util.GetAllTryJobResults( 565 result = handlers_util.GetAllTryJobResults(
561 self.master_name, self.builder_name, self.build_number) 566 self.master_name, self.builder_name, self.build_number)
562 567
563 expected_result = { 568 expected_result = {
564 'a_test-a_test1': { 569 'a_test on platform-a_test1': {
565 'step': 'a_test', 570 'step_name': 'a_test on platform',
566 'test': 'a_test1', 571 'test_name': 'a_test1',
572 'step_no_platform': 'a_test',
567 'try_job_key': 'm/b/121', 573 'try_job_key': 'm/b/121',
568 'try_job_build_number': 121, 574 'try_job_build_number': 121,
569 'status': 'Completed', 575 'status': 'Completed',
570 'try_job_url': ( 576 'try_job_url': (
571 'http://build.chromium.org/p/tryserver.chromium.linux/' 577 'http://build.chromium.org/p/tryserver.chromium.linux/'
572 'builders/linux_chromium_variable/builds/121'), 578 'builders/linux_chromium_variable/builds/121'),
573 'revision': 'rev1', 579 'revision': 'rev1',
574 'commit_position': '1', 580 'commit_position': '1',
575 'review_url': 'url_1' 581 'review_url': 'url_1'
576 }, 582 },
577 'a_test-a_test2': { 583 'a_test on platform-a_test2': {
578 'step': 'a_test', 584 'step_name': 'a_test on platform',
579 'test': 'a_test2', 585 'test_name': 'a_test2',
586 'step_no_platform': 'a_test',
580 'try_job_key': 'm/b/121', 587 'try_job_key': 'm/b/121',
581 'status': 'Completed', 588 'status': 'Completed',
582 'try_job_build_number': 121, 589 'try_job_build_number': 121,
583 'try_job_url': ( 590 'try_job_url': (
584 'http://build.chromium.org/p/tryserver.chromium.linux/' 591 'http://build.chromium.org/p/tryserver.chromium.linux/'
585 'builders/linux_chromium_variable/builds/121') 592 'builders/linux_chromium_variable/builds/121')
586 }, 593 },
587 'a_test-a_test3': { 594 'a_test on platform-a_test3': {
588 'step': 'a_test', 595 'step_name': 'a_test on platform',
589 'test': 'a_test3', 596 'test_name': 'a_test3',
597 'step_no_platform': 'a_test',
590 'try_job_key': 'm/b/120', 598 'try_job_key': 'm/b/120',
591 'try_job_build_number': 120, 599 'try_job_build_number': 120,
592 'status': 'Completed', 600 'status': 'Completed',
593 'try_job_url': ( 601 'try_job_url': (
594 'http://build.chromium.org/p/tryserver.chromium.linux/' 602 'http://build.chromium.org/p/tryserver.chromium.linux/'
595 'builders/linux_chromium_variable/builds/120'), 603 'builders/linux_chromium_variable/builds/120'),
596 'revision': 'rev0', 604 'revision': 'rev0',
597 'commit_position': '0', 605 'commit_position': '0',
598 'review_url': 'url_0' 606 'review_url': 'url_0'
599 }, 607 },
600 'a_test-a_test4': { 608 'a_test on platform-a_test4': {
601 'step': 'a_test', 609 'step_name': 'a_test on platform',
602 'test': 'a_test4', 610 'test_name': 'a_test4',
611 'step_no_platform': 'a_test',
603 'try_job_key': 'm/b/121', 612 'try_job_key': 'm/b/121',
604 'status': 'Flaky' 613 'status': 'Flaky'
605 }, 614 },
606 'b_test-b_test1': { 615 'b_test_on_platform-b_test1': {
607 'step': 'b_test', 616 'step_name': 'b_test_on_platform',
608 'test': 'b_test1', 617 'test_name': 'b_test1',
618 'step_no_platform': 'b_test',
609 'try_job_key': 'm/b/121', 619 'try_job_key': 'm/b/121',
610 'status': 'Flaky' 620 'status': 'Flaky'
611 }, 621 },
612 'c_test': { 622 'c_test': {
613 'step': 'c_test', 623 'step_name': 'c_test',
614 'test': 'N/A', 624 'test_name': 'N/A',
615 'try_job_key': 'm/b/121', 625 'try_job_key': 'm/b/121',
616 'try_job_build_number': 121, 626 'try_job_build_number': 121,
617 'status': 'Completed', 627 'status': 'Completed',
618 'try_job_url': ( 628 'try_job_url': (
619 'http://build.chromium.org/p/tryserver.chromium.linux/' 629 'http://build.chromium.org/p/tryserver.chromium.linux/'
620 'builders/linux_chromium_variable/builds/121'), 630 'builders/linux_chromium_variable/builds/121'),
621 'revision': 'rev2', 631 'revision': 'rev2',
622 'commit_position': '2', 632 'commit_position': '2',
623 'review_url': 'url_2' 633 'review_url': 'url_2'
624 }, 634 },
625 'd_test': { 635 'd_test': {
626 'step': 'd_test', 636 'step_name': 'd_test',
627 'test': 'N/A', 637 'test_name': 'N/A',
628 'try_job_key': 'm/b/122', 638 'try_job_key': 'm/b/122',
629 'try_job_build_number': 122, 639 'try_job_build_number': 122,
630 'status': 'Completed', 640 'status': 'Completed',
631 'try_job_url': ( 641 'try_job_url': (
632 'http://build.chromium.org/p/tryserver.chromium.linux/' 642 'http://build.chromium.org/p/tryserver.chromium.linux/'
633 'builders/linux_chromium_variable/builds/122') 643 'builders/linux_chromium_variable/builds/122')
634 } 644 }
635 } 645 }
636 self.assertEqual(expected_result, result) 646 self.assertEqual(expected_result, result)
637 647
638 def testUpdateFlakinessNoTask(self): 648 def testUpdateTryJobCulpritUsingSwarmingTaskNoTask(self):
639 step_name = 's' 649 step_name = 's'
640 failure_key_set = ['m/b/1'] 650 failure_key_set = ['m/b/1']
641 culprits_info = None 651 culprits_info = None
642 handlers_util._UpdateFlakiness(step_name, failure_key_set, culprits_info) 652 handlers_util._UpdateTryJobCulpritUsingSwarmingTask(
653 step_name, failure_key_set, culprits_info)
643 self.assertIsNone(culprits_info) 654 self.assertIsNone(culprits_info)
644 655
645 def testGetCulpritInfoForTryJobResultStep(self): 656 def testGetCulpritInfoForTryJobResultStep(self):
646 try_job_key = 'm/b/120' 657 try_job_key = 'm/b/120'
647 culprits_info = { 658 culprits_info = {
648 'a_test': { 659 'a_test on platform': {
649 'step': 'a_test', 660 'step_name': 'a_test on platform',
650 'test': 'N/A', 661 'test_name': 'N/A',
651 'try_job_key': try_job_key 662 'try_job_key': try_job_key
652 } 663 }
653 } 664 }
654 665
655 try_job_120 = WfTryJob.Create( 666 try_job_120 = WfTryJob.Create(
656 self.master_name, self.builder_name, 120) 667 self.master_name, self.builder_name, 120)
657 try_job_120.status = wf_analysis_status.ANALYZED 668 try_job_120.status = wf_analysis_status.ANALYZED
658 try_job_120.test_results = [ 669 try_job_120.test_results = [
659 { 670 {
660 'result': { 671 'result': {
661 'rev0': { 672 'rev0': {
662 'a_test': { 673 'a_test on platform': {
663 'status': 'failed', 674 'status': 'failed',
664 'valid': True, 675 'valid': True,
665 'failures': ['a_test3'] 676 'failures': ['a_test3']
666 } 677 }
667 } 678 }
668 }, 679 },
669 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/' 680 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/'
670 'builders/linux_chromium_variable/builds/120'), 681 'builders/linux_chromium_variable/builds/120'),
671 'try_job_id': '0', 682 'try_job_id': '0',
672 'culprit': { 683 'culprit': {
673 'a_test': { 684 'a_test on platform': {
674 'tests': { 685 'tests': {
675 'a_test3': { 686 'a_test3': {
676 'revision': 'rev0', 687 'revision': 'rev0',
677 'commit_position': '0', 688 'commit_position': '0',
678 'review_url': 'url_0' 689 'review_url': 'url_0'
679 } 690 }
680 } 691 }
681 } 692 }
682 } 693 }
683 } 694 }
684 ] 695 ]
685 try_job_120.put() 696 try_job_120.put()
686 697
687 handlers_util._GetCulpritInfoForTryJobResult(try_job_key, culprits_info) 698 handlers_util._GetCulpritInfoForTryJobResult(try_job_key, culprits_info)
688 699
689 expected_culprits_info = { 700 expected_culprits_info = {
690 'a_test-a_test3': { 701 'a_test on platform-a_test3': {
691 'step': 'a_test', 702 'step_name': 'a_test on platform',
692 'test': 'a_test3', 703 'test_name': 'a_test3',
693 'try_job_key': 'm/b/120', 704 'try_job_key': 'm/b/120',
694 'try_job_build_number': 120, 705 'try_job_build_number': 120,
695 'status': 'Completed', 706 'status': 'Completed',
696 'try_job_url': ( 707 'try_job_url': (
697 'http://build.chromium.org/p/tryserver.chromium.linux/' 708 'http://build.chromium.org/p/tryserver.chromium.linux/'
698 'builders/linux_chromium_variable/builds/120'), 709 'builders/linux_chromium_variable/builds/120'),
699 'revision': 'rev0', 710 'revision': 'rev0',
700 'commit_position': '0', 711 'commit_position': '0',
701 'review_url': 'url_0' 712 'review_url': 'url_0'
702 } 713 }
703 } 714 }
704 715
705 self.assertEqual(expected_culprits_info, culprits_info) 716 self.assertEqual(expected_culprits_info, culprits_info)
OLDNEW
« no previous file with comments | « appengine/findit/handlers/handlers_util.py ('k') | appengine/findit/waterfall/test/trigger_swarming_task_pipeline_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698