| 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 datetime import datetime | 5 from datetime import datetime |
| 6 import json | 6 import json |
| 7 import time | 7 import time |
| 8 | 8 |
| 9 from common import buildbucket_client | 9 from common import buildbucket_client |
| 10 from model import wf_analysis_status | 10 from model import analysis_status |
| 11 from model.wf_try_job import WfTryJob | 11 from model.wf_try_job import WfTryJob |
| 12 from model.wf_try_job_data import WfTryJobData | 12 from model.wf_try_job_data import WfTryJobData |
| 13 from waterfall.monitor_try_job_pipeline import MonitorTryJobPipeline | 13 from waterfall.monitor_try_job_pipeline import MonitorTryJobPipeline |
| 14 from waterfall.test import wf_testcase | 14 from waterfall.test import wf_testcase |
| 15 from waterfall.try_job_type import TryJobType | 15 from waterfall.try_job_type import TryJobType |
| 16 | 16 |
| 17 | 17 |
| 18 # A counter to enable different responses to requests in a loop. | 18 # A counter to enable different responses to requests in a loop. |
| 19 REQUEST_COUNTER = { | 19 REQUEST_COUNTER = { |
| 20 '1': 0, | 20 '1': 0, |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 try_job = WfTryJob.Create(master_name, builder_name, build_number) | 195 try_job = WfTryJob.Create(master_name, builder_name, build_number) |
| 196 try_job_data = WfTryJobData.Create(try_job_id) | 196 try_job_data = WfTryJobData.Create(try_job_id) |
| 197 try_job_data.put() | 197 try_job_data.put() |
| 198 try_job.compile_results = [ | 198 try_job.compile_results = [ |
| 199 { | 199 { |
| 200 'report': None, | 200 'report': None, |
| 201 'url': 'url', | 201 'url': 'url', |
| 202 'try_job_id': '1', | 202 'try_job_id': '1', |
| 203 } | 203 } |
| 204 ] | 204 ] |
| 205 try_job.status = wf_analysis_status.ANALYZING | 205 try_job.status = analysis_status.RUNNING |
| 206 try_job.put() | 206 try_job.put() |
| 207 self._MockGetTryJobs(try_job_id) | 207 self._MockGetTryJobs(try_job_id) |
| 208 | 208 |
| 209 pipeline = MonitorTryJobPipeline() | 209 pipeline = MonitorTryJobPipeline() |
| 210 compile_result = pipeline.run( | 210 compile_result = pipeline.run( |
| 211 master_name, builder_name, build_number, TryJobType.COMPILE, | 211 master_name, builder_name, build_number, TryJobType.COMPILE, |
| 212 try_job_id) | 212 try_job_id) |
| 213 | 213 |
| 214 expected_compile_result = { | 214 expected_compile_result = { |
| 215 'report': { | 215 'report': { |
| 216 'result': { | 216 'result': { |
| 217 'rev1': 'passed', | 217 'rev1': 'passed', |
| 218 'rev2': 'failed' | 218 'rev2': 'failed' |
| 219 }, | 219 }, |
| 220 'metadata': { | 220 'metadata': { |
| 221 'regression_range_size': regression_range_size | 221 'regression_range_size': regression_range_size |
| 222 } | 222 } |
| 223 }, | 223 }, |
| 224 'url': 'url', | 224 'url': 'url', |
| 225 'try_job_id': '1', | 225 'try_job_id': '1', |
| 226 } | 226 } |
| 227 | 227 |
| 228 self.assertEqual(expected_compile_result, compile_result) | 228 self.assertEqual(expected_compile_result, compile_result) |
| 229 | 229 |
| 230 try_job = WfTryJob.Get(master_name, builder_name, build_number) | 230 try_job = WfTryJob.Get(master_name, builder_name, build_number) |
| 231 self.assertEqual(expected_compile_result, try_job.compile_results[-1]) | 231 self.assertEqual(expected_compile_result, try_job.compile_results[-1]) |
| 232 self.assertEqual(wf_analysis_status.ANALYZING, try_job.status) | 232 self.assertEqual(analysis_status.RUNNING, try_job.status) |
| 233 | 233 |
| 234 try_job_data = WfTryJobData.Get(try_job_id) | 234 try_job_data = WfTryJobData.Get(try_job_id) |
| 235 self.assertEqual(try_job_data.regression_range_size, regression_range_size) | 235 self.assertEqual(try_job_data.regression_range_size, regression_range_size) |
| 236 | 236 |
| 237 def testGetTryJobsForTestSuccess(self): | 237 def testGetTryJobsForTestSuccess(self): |
| 238 master_name = 'm' | 238 master_name = 'm' |
| 239 builder_name = 'b' | 239 builder_name = 'b' |
| 240 build_number = 1 | 240 build_number = 1 |
| 241 try_job_id = '3' | 241 try_job_id = '3' |
| 242 | 242 |
| 243 try_job = WfTryJob.Create(master_name, builder_name, build_number) | 243 try_job = WfTryJob.Create(master_name, builder_name, build_number) |
| 244 try_job.test_results = [ | 244 try_job.test_results = [ |
| 245 { | 245 { |
| 246 'report': None, | 246 'report': None, |
| 247 'url': 'url', | 247 'url': 'url', |
| 248 'try_job_id': '3', | 248 'try_job_id': '3', |
| 249 } | 249 } |
| 250 ] | 250 ] |
| 251 try_job.status = wf_analysis_status.ANALYZING | 251 try_job.status = analysis_status.RUNNING |
| 252 try_job.put() | 252 try_job.put() |
| 253 self._MockGetTryJobs(try_job_id) | 253 self._MockGetTryJobs(try_job_id) |
| 254 | 254 |
| 255 pipeline = MonitorTryJobPipeline() | 255 pipeline = MonitorTryJobPipeline() |
| 256 test_result = pipeline.run( | 256 test_result = pipeline.run( |
| 257 master_name, builder_name, build_number, TryJobType.TEST, | 257 master_name, builder_name, build_number, TryJobType.TEST, |
| 258 try_job_id) | 258 try_job_id) |
| 259 | 259 |
| 260 expected_test_result = { | 260 expected_test_result = { |
| 261 'report': { | 261 'report': { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 275 } | 275 } |
| 276 } | 276 } |
| 277 }, | 277 }, |
| 278 'url': 'url', | 278 'url': 'url', |
| 279 'try_job_id': '3', | 279 'try_job_id': '3', |
| 280 } | 280 } |
| 281 self.assertEqual(expected_test_result, test_result) | 281 self.assertEqual(expected_test_result, test_result) |
| 282 | 282 |
| 283 try_job = WfTryJob.Get(master_name, builder_name, build_number) | 283 try_job = WfTryJob.Get(master_name, builder_name, build_number) |
| 284 self.assertEqual(expected_test_result, try_job.test_results[-1]) | 284 self.assertEqual(expected_test_result, try_job.test_results[-1]) |
| 285 self.assertEqual(wf_analysis_status.ANALYZING, try_job.status) | 285 self.assertEqual(analysis_status.RUNNING, try_job.status) |
| 286 | 286 |
| 287 def testUpdateTryJobResultAnalyzing(self): | 287 def testUpdateTryJobResultAnalyzing(self): |
| 288 master_name = 'm' | 288 master_name = 'm' |
| 289 builder_name = 'b' | 289 builder_name = 'b' |
| 290 build_number = 1 | 290 build_number = 1 |
| 291 try_job_id = '3' | 291 try_job_id = '3' |
| 292 | 292 |
| 293 try_job = WfTryJob.Create(master_name, builder_name, build_number).put() | 293 try_job = WfTryJob.Create(master_name, builder_name, build_number).put() |
| 294 | 294 |
| 295 pipeline = MonitorTryJobPipeline() | 295 pipeline = MonitorTryJobPipeline() |
| 296 pipeline._UpdateTryJobResult( | 296 pipeline._UpdateTryJobResult( |
| 297 buildbucket_client.BuildbucketBuild.STARTED, master_name, builder_name, | 297 buildbucket_client.BuildbucketBuild.STARTED, master_name, builder_name, |
| 298 build_number, TryJobType.TEST, try_job_id, 'url') | 298 build_number, TryJobType.TEST, try_job_id, 'url') |
| 299 try_job = WfTryJob.Get(master_name, builder_name, build_number) | 299 try_job = WfTryJob.Get(master_name, builder_name, build_number) |
| 300 self.assertEqual(wf_analysis_status.ANALYZING, try_job.status) | 300 self.assertEqual(analysis_status.RUNNING, try_job.status) |
| OLD | NEW |