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

Side by Side Diff: appengine/findit/waterfall/test/try_job_pipeline_test.py

Issue 1870103003: [Findit] Adding Try Job suspected CLs and result status to analysis (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Addressing comments 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
« no previous file with comments | « appengine/findit/waterfall/test/swarming_tasks_to_try_job_pipeline_test.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 from common.git_repository import GitRepository 7 from common.git_repository import GitRepository
8 from common.pipeline_wrapper import pipeline_handlers 8 from common.pipeline_wrapper import pipeline_handlers
9 from common.waterfall import buildbucket_client 9 from common.waterfall import buildbucket_client
10 from model import analysis_status 10 from model import analysis_status
11 from model import result_status
12 from model.wf_analysis import WfAnalysis
11 from model.wf_try_job import WfTryJob 13 from model.wf_try_job import WfTryJob
12 from waterfall.test import wf_testcase 14 from waterfall.test import wf_testcase
13 from waterfall.try_job_pipeline import TryJobPipeline 15 from waterfall.try_job_pipeline import TryJobPipeline
14 from waterfall.try_job_type import TryJobType 16 from waterfall.try_job_type import TryJobType
15 17
16 18
17 class TryJobPipelineTest(wf_testcase.WaterfallTestCase): 19 class TryJobPipelineTest(wf_testcase.WaterfallTestCase):
18 app_module = pipeline_handlers._APP 20 app_module = pipeline_handlers._APP
19 21
20 def _Mock_TriggerTryJobs(self, responses): 22 def _Mock_TriggerTryJobs(self, responses):
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 'status': 'SCHEDULED', 99 'status': 'SCHEDULED',
98 } 100 }
99 } 101 }
100 ] 102 ]
101 103
102 self._Mock_TriggerTryJobs(responses) 104 self._Mock_TriggerTryJobs(responses)
103 self._Mock_GetTryJobs('1') 105 self._Mock_GetTryJobs('1')
104 self._Mock_GetChangeLog('rev2') 106 self._Mock_GetChangeLog('rev2')
105 107
106 WfTryJob.Create(master_name, builder_name, build_number).put() 108 WfTryJob.Create(master_name, builder_name, build_number).put()
109 analysis = WfAnalysis.Create(master_name, builder_name, build_number)
110 analysis.put()
107 111
108 root_pipeline = TryJobPipeline( 112 root_pipeline = TryJobPipeline(
109 master_name, builder_name, build_number, 'rev1', 'rev2', ['rev2'], 113 master_name, builder_name, build_number, 'rev1', 'rev2', ['rev2'],
110 TryJobType.COMPILE, []) 114 TryJobType.COMPILE, [])
111 root_pipeline.start() 115 root_pipeline.start()
112 self.execute_queued_tasks() 116 self.execute_queued_tasks()
113 117
114 try_job = WfTryJob.Get(master_name, builder_name, build_number) 118 try_job = WfTryJob.Get(master_name, builder_name, build_number)
119 expected_suspected_cl = {
120 'revision': 'rev2',
121 'commit_position': '2',
122 'review_url': 'url_2',
123 'repo_name': 'chromium'
124 }
115 125
116 expected_try_job_results = [ 126 expected_try_job_results = [
117 { 127 {
118 'report': { 128 'report': {
119 'result': { 129 'result': {
120 'rev1': 'passed', 130 'rev1': 'passed',
121 'rev2': 'failed' 131 'rev2': 'failed'
122 }, 132 },
123 'metadata': { 133 'metadata': {
124 'regression_range_size': 2 134 'regression_range_size': 2
125 } 135 }
126 }, 136 },
127 'url': 'url', 137 'url': 'url',
128 'try_job_id': '1', 138 'try_job_id': '1',
129 'culprit': { 139 'culprit': {
130 'compile': { 140 'compile': expected_suspected_cl
131 'revision': 'rev2',
132 'commit_position': '2',
133 'review_url': 'url_2'
134 }
135 } 141 }
136 } 142 }
137 ] 143 ]
138 self.assertEqual(expected_try_job_results, try_job.compile_results) 144 self.assertEqual(expected_try_job_results, try_job.compile_results)
145 self.assertEqual(analysis.result_status,
146 result_status.FOUND_UNTRIAGED)
147 self.assertEqual(analysis.suspected_cls,
148 [expected_suspected_cl])
139 149
140 def testPipelineAbortedWithTryJobResult(self): 150 def testPipelineAbortedWithTryJobResult(self):
141 master_name = 'm' 151 master_name = 'm'
142 builder_name = 'b' 152 builder_name = 'b'
143 build_number = 1 153 build_number = 1
144 154
145 WfTryJob.Create(master_name, builder_name, build_number).put() 155 WfTryJob.Create(master_name, builder_name, build_number).put()
146 156
147 root_pipeline = TryJobPipeline( 157 root_pipeline = TryJobPipeline(
148 master_name, builder_name, build_number, 'rev1', 'rev2', ['rev2'], 158 master_name, builder_name, build_number, 'rev1', 'rev2', ['rev2'],
149 TryJobType.COMPILE, []) 159 TryJobType.COMPILE, [])
150 root_pipeline._LogUnexpectedAbort(True) 160 root_pipeline._LogUnexpectedAbort(True)
151 161
152 try_job = WfTryJob.Get(master_name, builder_name, build_number) 162 try_job = WfTryJob.Get(master_name, builder_name, build_number)
153 self.assertEqual(analysis_status.ERROR, try_job.status) 163 self.assertEqual(analysis_status.ERROR, try_job.status)
154 164
155 def testPipelineAbortedWithOutTryJobResult(self): 165 def testPipelineAbortedWithOutTryJobResult(self):
156 master_name = 'm' 166 master_name = 'm'
157 builder_name = 'b' 167 builder_name = 'b'
158 build_number = 1 168 build_number = 1
159 169
160 root_pipeline = TryJobPipeline( 170 root_pipeline = TryJobPipeline(
161 master_name, builder_name, build_number, 'rev1', 'rev2', ['rev2'], 171 master_name, builder_name, build_number, 'rev1', 'rev2', ['rev2'],
162 TryJobType.COMPILE, []) 172 TryJobType.COMPILE, [])
163 root_pipeline._LogUnexpectedAbort(True) 173 root_pipeline._LogUnexpectedAbort(True)
164 174
165 try_job = WfTryJob.Get(master_name, builder_name, build_number) 175 try_job = WfTryJob.Get(master_name, builder_name, build_number)
166 176
167 self.assertIsNone(try_job) 177 self.assertIsNone(try_job)
OLDNEW
« no previous file with comments | « appengine/findit/waterfall/test/swarming_tasks_to_try_job_pipeline_test.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698