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

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

Issue 1836293002: [Findit] Adding central config test class for unit tests (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Rebase 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 testing_utils import testing 5 from handlers import handlers_util
6
7 from handlers import result_status 6 from handlers import result_status
8 from handlers import handlers_util
9 from model import wf_analysis_status 7 from model import wf_analysis_status
10 from model.wf_analysis import WfAnalysis 8 from model.wf_analysis import WfAnalysis
11 from model.wf_swarming_task import WfSwarmingTask 9 from model.wf_swarming_task import WfSwarmingTask
12 from model.wf_try_job import WfTryJob 10 from model.wf_try_job import WfTryJob
13 from waterfall import buildbot 11 from waterfall.test import wf_testcase
14 from waterfall import waterfall_config
15 12
16 13
17 class HandlersUtilResultTest(testing.AppengineTestCase): 14 class HandlersUtilResultTest(wf_testcase.WaterfallTestCase):
18 15
19 def setUp(self): 16 def setUp(self):
20 super(HandlersUtilResultTest, self).setUp() 17 super(HandlersUtilResultTest, self).setUp()
21 self.master_name = 'm' 18 self.master_name = 'm'
22 self.builder_name = 'b' 19 self.builder_name = 'b'
23 self.build_number = 121 20 self.build_number = 121
24 21
25 def MockedGetSwarmingSettings():
26 return {'server_host': 'chromium-swarm.appspot.com'}
27 self.mock(
28 waterfall_config, 'GetSwarmingSettings', MockedGetSwarmingSettings)
29
30 def testGetSwarmingTaskInfoNoAnalysis(self): 22 def testGetSwarmingTaskInfoNoAnalysis(self):
31 data = handlers_util.GetSwarmingTaskInfo( 23 data = handlers_util.GetSwarmingTaskInfo(
32 self.master_name, self.builder_name, self.build_number) 24 self.master_name, self.builder_name, self.build_number)
33
34 self.assertEqual({}, data) 25 self.assertEqual({}, data)
35 26
36 def testGetSwarmingTaskInfoReturnEmptyIfNoFailureMap(self): 27 def testGetSwarmingTaskInfoReturnEmptyIfNoFailureMap(self):
37 WfAnalysis.Create( 28 WfAnalysis.Create(
38 self.master_name, self.builder_name, self.build_number).put() 29 self.master_name, self.builder_name, self.build_number).put()
39 30
40 data = handlers_util.GetSwarmingTaskInfo( 31 data = handlers_util.GetSwarmingTaskInfo(
41 self.master_name, self.builder_name, self.build_number) 32 self.master_name, self.builder_name, self.build_number)
42 33
43 self.assertEqual({}, data) 34 self.assertEqual({}, data)
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 'task_url': ('https://chromium-swarm.appspot.com/user' 206 'task_url': ('https://chromium-swarm.appspot.com/user'
216 '/task/task1') 207 '/task/task1')
217 }, 208 },
218 'all_tests': ['test2', 'test3', 'test4'], 209 'all_tests': ['test2', 'test3', 'test4'],
219 'reliable_tests': ['test2'], 210 'reliable_tests': ['test2'],
220 'flaky_tests': ['test3', 'test4'], 211 'flaky_tests': ['test3', 'test4'],
221 'ref_name': 'step1' 212 'ref_name': 'step1'
222 }, 213 },
223 'm/b/120': { 214 'm/b/120': {
224 'task_info': { 215 'task_info': {
225 'status': wf_analysis_status.ANALYZED, 216 'status': wf_analysis_status.ANALYZED,
226 'task_id': 'task0', 217 'task_id': 'task0',
227 'task_url': ( 218 'task_url': ('https://chromium-swarm.appspot.com/user/'
228 'https://chromium-swarm.appspot.com/user/task/task0') 219 'task/task0')
229 }, 220 },
230 'all_tests': ['test1'], 221 'all_tests': ['test1'],
231 'reliable_tests': ['test1'], 222 'reliable_tests': ['test1'],
232 'flaky_tests': [], 223 'flaky_tests': [],
233 'ref_name': 'step1' 224 'ref_name': 'step1'
234 } 225 }
235 } 226 }
236 }, 227 },
237 'step2': { 228 'step2': {
238 'swarming_tasks': { 229 'swarming_tasks': {
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 try_job.compile_results = [ 356 try_job.compile_results = [
366 { 357 {
367 'try_job_id': '1' 358 'try_job_id': '1'
368 } 359 }
369 ] 360 ]
370 try_job.put() 361 try_job.put()
371 362
372 result = handlers_util._GetTryJobResultForCompile({'compile': 'm/b/121'}) 363 result = handlers_util._GetTryJobResultForCompile({'compile': 'm/b/121'})
373 364
374 expected_result = { 365 expected_result = {
375 'compile': { 366 'compile': {
376 'try_jobs': [ 367 'try_jobs': [
377 { 368 {
378 'try_job_key': 'm/b/121', 369 'try_job_key': 'm/b/121',
379 'status': wf_analysis_status.ERROR 370 'status': wf_analysis_status.ERROR
380 } 371 }
381 ] 372 ]
382 } 373 }
383 } 374 }
384 375
385 self.assertEqual(expected_result, result) 376 self.assertEqual(expected_result, result)
(...skipping 28 matching lines...) Expand all
414 } 405 }
415 } 406 }
416 } 407 }
417 ] 408 ]
418 try_job.put() 409 try_job.put()
419 410
420 result = handlers_util.GetAllTryJobResults( 411 result = handlers_util.GetAllTryJobResults(
421 self.master_name, self.builder_name, self.build_number) 412 self.master_name, self.builder_name, self.build_number)
422 413
423 expected_result = { 414 expected_result = {
424 'compile': { 415 'compile': {
425 'try_jobs': [ 416 'try_jobs': [
426 { 417 {
427 'try_job_key': 'm/b/121', 418 'try_job_key': 'm/b/121',
428 'status': wf_analysis_status.ANALYZED, 419 'status': wf_analysis_status.ANALYZED,
429 'try_job_build_number': 121, 420 'try_job_build_number': 121,
430 'try_job_url': ( 421 'try_job_url': (
431 'http://build.chromium.org/p/tryserver.chromium.' 422 'http://build.chromium.org/p/tryserver.chromium.'
432 'linux/builders/linux_chromium_variable/builds/121'), 423 'linux/builders/linux_chromium_variable/builds/121'),
433 'culprit': { 424 'culprit': {
434 'revision': 'rev2', 425 'revision': 'rev2',
(...skipping 29 matching lines...) Expand all
464 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/' 455 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/'
465 'builders/linux_chromium_variable/builds/121') 456 'builders/linux_chromium_variable/builds/121')
466 } 457 }
467 ] 458 ]
468 try_job.put() 459 try_job.put()
469 460
470 result = handlers_util.GetAllTryJobResults( 461 result = handlers_util.GetAllTryJobResults(
471 self.master_name, self.builder_name, self.build_number) 462 self.master_name, self.builder_name, self.build_number)
472 463
473 expected_result = { 464 expected_result = {
474 'compile': { 465 'compile': {
475 'try_jobs': [ 466 'try_jobs': [
476 { 467 {
477 'try_job_key': 'm/b/121', 468 'try_job_key': 'm/b/121',
478 'status': wf_analysis_status.ANALYZED, 469 'status': wf_analysis_status.ANALYZED,
479 'try_job_build_number': 121, 470 'try_job_build_number': 121,
480 'try_job_url': ( 471 'try_job_url': (
481 'http://build.chromium.org/p/tryserver.chromium.' 472 'http://build.chromium.org/p/tryserver.chromium.'
482 'linux/builders/linux_chromium_variable/builds/121') 473 'linux/builders/linux_chromium_variable/builds/121')
483 } 474 }
484 ] 475 ]
485 } 476 }
486 } 477 }
487 478
488 self.assertEqual(expected_result, result) 479 self.assertEqual(expected_result, result)
489 480
490 def testGetAllTryJobResultsTestFailureNoTaskInfo(self): 481 def testGetAllTryJobResultsTestFailureNoTaskInfo(self):
491 analysis = WfAnalysis.Create( 482 analysis = WfAnalysis.Create(
492 self.master_name, self.builder_name, self.build_number) 483 self.master_name, self.builder_name, self.build_number)
493 analysis.failure_result_map = { 484 analysis.failure_result_map = {
494 'step1': { 485 'step1': {
495 'test1': 'm/b/118' 486 'test1': 'm/b/118'
496 } 487 }
497 } 488 }
498 analysis.put() 489 analysis.put()
499 490
500 result = handlers_util.GetAllTryJobResults( 491 result = handlers_util.GetAllTryJobResults(
501 self.master_name, self.builder_name, self.build_number) 492 self.master_name, self.builder_name, self.build_number)
502 493
503 expected_result = { 494 expected_result = {
504 'step1':{ 495 'step1': {
505 'try_jobs': [ 496 'try_jobs': [
506 { 497 {
507 'try_job_key': 'm/b/118', 498 'try_job_key': 'm/b/118',
508 'status': ( 499 'status': (
509 result_status.NO_TRY_JOB_REASON_MAP.get( 500 result_status.NO_TRY_JOB_REASON_MAP.get(
510 result_status.NO_SWARMING_TASK_FOUND)), 501 result_status.NO_SWARMING_TASK_FOUND)),
511 'tests': ['test1'] 502 'tests': ['test1']
512 } 503 }
513 ] 504 ]
514 } 505 }
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 'all_tests': ['test3'] 577 'all_tests': ['test3']
587 } 578 }
588 } 579 }
589 } 580 }
590 } 581 }
591 582
592 result = handlers_util._GetAllTryJobResultsForTest( 583 result = handlers_util._GetAllTryJobResultsForTest(
593 failure_result_map, tasks_info) 584 failure_result_map, tasks_info)
594 585
595 expected_result = { 586 expected_result = {
596 'step1':{ 587 'step1': {
597 'try_jobs': [ 588 'try_jobs': [
598 { 589 {
599 'try_job_key': 'm/b/118', 590 'try_job_key': 'm/b/118',
600 'status': result_status.NO_TRY_JOB_REASON_MAP[ 591 'status': result_status.NO_TRY_JOB_REASON_MAP[
601 wf_analysis_status.PENDING], 592 wf_analysis_status.PENDING],
602 'tests': ['test1'] 593 'tests': ['test1']
603 }, 594 },
604 { 595 {
605 'try_job_key': 'm/b/119', 596 'try_job_key': 'm/b/119',
606 'status': result_status.NO_TRY_JOB_REASON_MAP[ 597 'status': result_status.NO_TRY_JOB_REASON_MAP[
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
714 } 705 }
715 } 706 }
716 } 707 }
717 ] 708 ]
718 try_job.put() 709 try_job.put()
719 710
720 result = handlers_util._GetAllTryJobResultsForTest( 711 result = handlers_util._GetAllTryJobResultsForTest(
721 failure_result_map, tasks_info) 712 failure_result_map, tasks_info)
722 713
723 expected_result = { 714 expected_result = {
724 'step1 on platform':{ 715 'step1 on platform': {
725 'try_jobs': [ 716 'try_jobs': [
726 { 717 {
727 'ref_name': 'step1', 718 'ref_name': 'step1',
728 'try_job_key': 'm/b/119', 719 'try_job_key': 'm/b/119',
729 'status': wf_analysis_status.ANALYZED, 720 'status': wf_analysis_status.ANALYZED,
730 'try_job_url': ( 721 'try_job_url': (
731 'http://build.chromium.org/p/tryserver.chromium.' 722 'http://build.chromium.org/p/tryserver.chromium.'
732 'linux/builders/linux_chromium_variable/builds/121'), 723 'linux/builders/linux_chromium_variable/builds/121'),
733 'try_job_build_number': 121, 724 'try_job_build_number': 121,
734 'culprit': { 725 'culprit': {
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
816 } 807 }
817 } 808 }
818 } 809 }
819 ] 810 ]
820 try_job.put() 811 try_job.put()
821 812
822 result = handlers_util._GetAllTryJobResultsForTest( 813 result = handlers_util._GetAllTryJobResultsForTest(
823 failure_result_map, tasks_info) 814 failure_result_map, tasks_info)
824 815
825 expected_result = { 816 expected_result = {
826 'step1 on platform':{ 817 'step1 on platform': {
827 'try_jobs': [ 818 'try_jobs': [
828 { 819 {
829 'try_job_key': 'm/b/118', 820 'try_job_key': 'm/b/118',
830 'status': result_status.NO_TRY_JOB_REASON_MAP.get( 821 'status': result_status.NO_TRY_JOB_REASON_MAP.get(
831 result_status.NO_SWARMING_TASK_FOUND), 822 result_status.NO_SWARMING_TASK_FOUND),
832 'tests': ['test1'] 823 'tests': ['test1']
833 }, 824 },
834 { 825 {
835 'ref_name': 'step1', 826 'ref_name': 'step1',
836 'try_job_key': 'm/b/119', 827 'try_job_key': 'm/b/119',
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 886
896 result = handlers_util._OrganizeTryJobResultByCulprits(try_job_culprits) 887 result = handlers_util._OrganizeTryJobResultByCulprits(try_job_culprits)
897 expected_result = { 888 expected_result = {
898 'rev1': { 889 'rev1': {
899 'revision': 'rev1', 890 'revision': 'rev1',
900 'commit_position': '1', 891 'commit_position': '1',
901 'review_url': 'url_1', 892 'review_url': 'url_1',
902 'failed_tests': ['a_test2', 'a_test1'] 893 'failed_tests': ['a_test2', 'a_test1']
903 } 894 }
904 } 895 }
905 self.assertEqual(expected_result,result) 896 self.assertEqual(expected_result, result)
906 897
907 def testGetCulpritInfoForTryJobResultForTestTryJobNoResult(self): 898 def testGetCulpritInfoForTryJobResultForTestTryJobNoResult(self):
908 try_job_key = 'm/b/119' 899 try_job_key = 'm/b/119'
909 culprits_info = { 900 culprits_info = {
910 'step1 on platform':{ 901 'step1 on platform': {
911 'try_jobs': [ 902 'try_jobs': [
912 { 903 {
913 'ref_name': 'step1', 904 'ref_name': 'step1',
914 'try_job_key': try_job_key, 905 'try_job_key': try_job_key,
915 'tests': ['test2', 'test3'] 906 'tests': ['test2', 'test3']
916 } 907 }
917 ] 908 ]
918 } 909 }
919 } 910 }
920 WfTryJob.Create('m', 'b', '119').put() 911 WfTryJob.Create('m', 'b', '119').put()
921 handlers_util._GetCulpritInfoForTryJobResultForTest( 912 handlers_util._GetCulpritInfoForTryJobResultForTest(
922 try_job_key, culprits_info) 913 try_job_key, culprits_info)
923 914
924 expected_culprits_info = { 915 expected_culprits_info = {
925 'step1 on platform':{ 916 'step1 on platform': {
926 'try_jobs': [ 917 'try_jobs': [
927 { 918 {
928 'ref_name': 'step1', 919 'ref_name': 'step1',
929 'try_job_key': try_job_key, 920 'try_job_key': try_job_key,
930 'tests': ['test2', 'test3'], 921 'tests': ['test2', 'test3'],
931 'status': wf_analysis_status.PENDING 922 'status': wf_analysis_status.PENDING
932 } 923 }
933 ] 924 ]
934 } 925 }
935 } 926 }
936 self.assertEqual(expected_culprits_info, culprits_info) 927 self.assertEqual(expected_culprits_info, culprits_info)
937 928
938 def testGetCulpritInfoForTryJobResultForTestTryJobRunning(self): 929 def testGetCulpritInfoForTryJobResultForTestTryJobRunning(self):
939 try_job_key = 'm/b/119' 930 try_job_key = 'm/b/119'
940 culprits_info = { 931 culprits_info = {
941 'step1 on platform':{ 932 'step1 on platform': {
942 'try_jobs': [ 933 'try_jobs': [
943 { 934 {
944 'ref_name': 'step1', 935 'ref_name': 'step1',
945 'try_job_key': try_job_key, 936 'try_job_key': try_job_key,
946 'tests': ['test2', 'test3'] 937 'tests': ['test2', 'test3']
947 } 938 }
948 ] 939 ]
949 } 940 }
950 } 941 }
951 try_job = WfTryJob.Create('m', 'b', '119') 942 try_job = WfTryJob.Create('m', 'b', '119')
952 try_job.status = wf_analysis_status.ANALYZING 943 try_job.status = wf_analysis_status.ANALYZING
953 try_job.test_results = [ 944 try_job.test_results = [
954 { 945 {
955 'url': ('http://build.chromium.org/p/tryserver.chromium.' 946 'url': ('http://build.chromium.org/p/tryserver.chromium.'
956 'linux/builders/linux_chromium_variable/builds/121'), 947 'linux/builders/linux_chromium_variable/builds/121'),
957 'try_job_id': '121' 948 'try_job_id': '121'
958 } 949 }
959 ] 950 ]
960 try_job.put() 951 try_job.put()
961 handlers_util._GetCulpritInfoForTryJobResultForTest( 952 handlers_util._GetCulpritInfoForTryJobResultForTest(
962 try_job_key, culprits_info) 953 try_job_key, culprits_info)
963 954
964 expected_culprits_info = { 955 expected_culprits_info = {
965 'step1 on platform':{ 956 'step1 on platform': {
966 'try_jobs': [ 957 'try_jobs': [
967 { 958 {
968 'ref_name': 'step1', 959 'ref_name': 'step1',
969 'try_job_key': try_job_key, 960 'try_job_key': try_job_key,
970 'tests': ['test2', 'test3'], 961 'tests': ['test2', 'test3'],
971 'status': wf_analysis_status.ANALYZING, 962 'status': wf_analysis_status.ANALYZING,
972 'try_job_url': ( 963 'try_job_url': (
973 'http://build.chromium.org/p/tryserver.chromium.' 964 'http://build.chromium.org/p/tryserver.chromium.'
974 'linux/builders/linux_chromium_variable/builds/121'), 965 'linux/builders/linux_chromium_variable/builds/121'),
975 'try_job_build_number': 121 966 'try_job_build_number': 121
976 } 967 }
977 ] 968 ]
978 } 969 }
979 } 970 }
980 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/config_test.py ('k') | appengine/findit/handlers/test/monitor_alerts_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698