| OLD | NEW |
| 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 from common.waterfall import buildbucket_client | 5 from common.waterfall import buildbucket_client |
| 6 from model.wf_try_job import WfTryJob | 6 from model.wf_try_job import WfTryJob |
| 7 from model.wf_try_job_data import WfTryJobData |
| 7 from waterfall.schedule_try_job_pipeline import ScheduleTryJobPipeline | 8 from waterfall.schedule_try_job_pipeline import ScheduleTryJobPipeline |
| 8 from waterfall.test import wf_testcase | 9 from waterfall.test import wf_testcase |
| 9 from waterfall.try_job_type import TryJobType | 10 from waterfall.try_job_type import TryJobType |
| 10 | 11 |
| 11 | 12 |
| 12 class ScheduleTryjobPipelineTest(wf_testcase.WaterfallTestCase): | 13 class ScheduleTryjobPipelineTest(wf_testcase.WaterfallTestCase): |
| 13 | 14 |
| 14 def _Mock_TriggerTryJobs(self, responses): | 15 def _Mock_TriggerTryJobs(self, responses): |
| 15 def MockedTriggerTryJobs(*_): | 16 def MockedTriggerTryJobs(*_): |
| 16 results = [] | 17 results = [] |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 None, targeted_tests, None) | 72 None, targeted_tests, None) |
| 72 | 73 |
| 73 self.assertEqual(properties, expected_properties) | 74 self.assertEqual(properties, expected_properties) |
| 74 | 75 |
| 75 def testSuccessfullyScheduleNewTryJobForCompileWithSuspectedRevisions(self): | 76 def testSuccessfullyScheduleNewTryJobForCompileWithSuspectedRevisions(self): |
| 76 master_name = 'm' | 77 master_name = 'm' |
| 77 builder_name = 'b' | 78 builder_name = 'b' |
| 78 build_number = 223 | 79 build_number = 223 |
| 79 good_revision = 'rev1' | 80 good_revision = 'rev1' |
| 80 bad_revision = 'rev2' | 81 bad_revision = 'rev2' |
| 82 build_id = '1' |
| 83 url = 'url' |
| 81 | 84 |
| 82 responses = [ | 85 responses = [ |
| 83 { | 86 { |
| 84 'build': { | 87 'build': { |
| 85 'id': '1', | 88 'id': build_id, |
| 86 'url': 'url', | 89 'url': url, |
| 87 'status': 'SCHEDULED', | 90 'status': 'SCHEDULED', |
| 88 } | 91 } |
| 89 } | 92 } |
| 90 ] | 93 ] |
| 91 | 94 |
| 92 self._Mock_TriggerTryJobs(responses) | 95 self._Mock_TriggerTryJobs(responses) |
| 93 | 96 |
| 94 WfTryJob.Create(master_name, builder_name, build_number).put() | 97 WfTryJob.Create(master_name, builder_name, build_number).put() |
| 95 | 98 |
| 96 try_job_pipeline = ScheduleTryJobPipeline() | 99 try_job_pipeline = ScheduleTryJobPipeline() |
| 97 try_job_id = try_job_pipeline.run( | 100 try_job_id = try_job_pipeline.run( |
| 98 master_name, builder_name, build_number, good_revision, bad_revision, | 101 master_name, builder_name, build_number, good_revision, bad_revision, |
| 99 TryJobType.COMPILE, None, None, ['r5']) | 102 TryJobType.COMPILE, None, None, ['r5']) |
| 100 | 103 |
| 101 try_job = WfTryJob.Get(master_name, builder_name, build_number) | 104 try_job = WfTryJob.Get(master_name, builder_name, build_number) |
| 105 try_job_data = WfTryJobData.Get(build_id) |
| 106 |
| 102 expected_try_job_id = '1' | 107 expected_try_job_id = '1' |
| 103 self.assertEqual(expected_try_job_id, try_job_id) | 108 self.assertEqual(expected_try_job_id, try_job_id) |
| 104 self.assertEqual( | 109 self.assertEqual( |
| 105 expected_try_job_id, try_job.compile_results[-1]['try_job_id']) | 110 expected_try_job_id, try_job.compile_results[-1]['try_job_id']) |
| 106 self.assertTrue(expected_try_job_id in try_job.try_job_ids) | 111 self.assertTrue(expected_try_job_id in try_job.try_job_ids) |
| 112 self.assertIsNotNone(try_job_data) |
| 113 self.assertEqual(try_job_data.master_name, master_name) |
| 114 self.assertEqual(try_job_data.builder_name, builder_name) |
| 115 self.assertEqual(try_job_data.build_number, build_number) |
| 116 self.assertEqual(try_job_data.try_job_type, TryJobType.COMPILE) |
| 117 self.assertFalse(try_job_data.has_compile_targets) |
| 118 self.assertTrue(try_job_data.has_heuristic_results) |
| 107 | 119 |
| 108 def testSuccessfullyScheduleNewTryJobForTest(self): | 120 def testSuccessfullyScheduleNewTryJobForTest(self): |
| 109 master_name = 'm' | 121 master_name = 'm' |
| 110 builder_name = 'b' | 122 builder_name = 'b' |
| 111 build_number = 223 | 123 build_number = 223 |
| 112 good_revision = 'rev1' | 124 good_revision = 'rev1' |
| 113 bad_revision = 'rev2' | 125 bad_revision = 'rev2' |
| 114 targeted_tests = {'a': ['test1', 'test2']} | 126 targeted_tests = {'a': ['test1', 'test2']} |
| 127 build_id = '1' |
| 115 | 128 |
| 116 responses = [ | 129 responses = [ |
| 117 { | 130 { |
| 118 'build': { | 131 'build': { |
| 119 'id': '1', | 132 'id': build_id, |
| 120 'url': 'url', | 133 'url': 'url', |
| 121 'status': 'SCHEDULED', | 134 'status': 'SCHEDULED', |
| 122 } | 135 } |
| 123 } | 136 } |
| 124 ] | 137 ] |
| 125 self._Mock_TriggerTryJobs(responses) | 138 self._Mock_TriggerTryJobs(responses) |
| 126 | 139 |
| 127 WfTryJob.Create(master_name, builder_name, build_number).put() | 140 WfTryJob.Create(master_name, builder_name, build_number).put() |
| 128 | 141 |
| 129 try_job_pipeline = ScheduleTryJobPipeline() | 142 try_job_pipeline = ScheduleTryJobPipeline() |
| 130 try_job_id = try_job_pipeline.run( | 143 try_job_id = try_job_pipeline.run( |
| 131 master_name, builder_name, build_number, good_revision, bad_revision, | 144 master_name, builder_name, build_number, good_revision, bad_revision, |
| 132 TryJobType.TEST, None, targeted_tests, None) | 145 TryJobType.TEST, None, targeted_tests, None) |
| 133 | 146 |
| 134 try_job = WfTryJob.Get(master_name, builder_name, build_number) | 147 try_job = WfTryJob.Get(master_name, builder_name, build_number) |
| 135 self.assertEqual('1', try_job_id) | 148 try_job_data = WfTryJobData.Get(try_job_id) |
| 136 self.assertEqual('1', try_job.test_results[-1]['try_job_id']) | 149 self.assertEqual(try_job_id, build_id) |
| 150 self.assertEqual(try_job.test_results[-1]['try_job_id'], build_id) |
| 151 self.assertIsNotNone(try_job_data) |
| 152 self.assertEqual(try_job_data.master_name, master_name) |
| 153 self.assertEqual(try_job_data.builder_name, builder_name) |
| 154 self.assertEqual(try_job_data.build_number, build_number) |
| 155 self.assertEqual(try_job_data.try_job_type, TryJobType.TEST) |
| 156 self.assertFalse(try_job_data.has_compile_targets) |
| 157 self.assertFalse(try_job_data.has_heuristic_results) |
| OLD | NEW |