| 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.waterfall import buildbucket_client | 9 from common.waterfall import buildbucket_client |
| 10 from model import analysis_status | 10 from model import analysis_status |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 self.assertIsNone(MonitorTryJobPipeline._MicrosecondsToDatetime(None)) | 131 self.assertIsNone(MonitorTryJobPipeline._MicrosecondsToDatetime(None)) |
| 132 | 132 |
| 133 def testUpdateTryJobMetadataForBuildError(self): | 133 def testUpdateTryJobMetadataForBuildError(self): |
| 134 error_data = { | 134 error_data = { |
| 135 'reason': 'BUILD_NOT_FOUND', | 135 'reason': 'BUILD_NOT_FOUND', |
| 136 'message': 'message' | 136 'message': 'message' |
| 137 } | 137 } |
| 138 error = buildbucket_client.BuildbucketError(error_data) | 138 error = buildbucket_client.BuildbucketError(error_data) |
| 139 try_job_data = WfTryJobData.Create('1') | 139 try_job_data = WfTryJobData.Create('1') |
| 140 | 140 |
| 141 MonitorTryJobPipeline._UpdateTryJobMetadataForBuildError( | 141 MonitorTryJobPipeline._UpdateTryJobMetadata( |
| 142 try_job_data, error) | 142 try_job_data, None, None, error, False) |
| 143 self.assertEqual(try_job_data.error, error_data) | 143 self.assertEqual(try_job_data.error, error_data) |
| 144 | 144 |
| 145 def testUpdateTryJobMetadataForCompletedBuild(self): | 145 def testUpdateTryJobMetadataForCompletedBuild(self): |
| 146 try_job_id = '1' | 146 try_job_id = '1' |
| 147 url = 'url' | 147 url = 'url' |
| 148 build_data = { | 148 build_data = { |
| 149 'id': try_job_id, | 149 'id': try_job_id, |
| 150 'url': url, | 150 'url': url, |
| 151 'status': 'COMPLETED', | 151 'status': 'COMPLETED', |
| 152 'completed_ts': '1454367574000000', | 152 'completed_ts': '1454367574000000', |
| 153 'created_ts': '1454367570000000', | 153 'created_ts': '1454367570000000', |
| 154 'result_details_json': json.dumps({ | 154 'result_details_json': json.dumps({ |
| 155 'properties': { | 155 'properties': { |
| 156 'report': { | 156 'report': { |
| 157 'result': { | 157 'result': { |
| 158 'rev1': 'passed', | 158 'rev1': 'passed', |
| 159 'rev2': 'failed' | 159 'rev2': 'failed' |
| 160 }, | 160 }, |
| 161 'metadata': { | 161 'metadata': { |
| 162 'regression_range_size': 2 | 162 'regression_range_size': 2 |
| 163 } | 163 } |
| 164 } | 164 } |
| 165 } | 165 } |
| 166 }) | 166 }) |
| 167 } | 167 } |
| 168 build = buildbucket_client.BuildbucketBuild(build_data) | 168 build = buildbucket_client.BuildbucketBuild(build_data) |
| 169 try_job_data = WfTryJobData.Create(try_job_id) | 169 try_job_data = WfTryJobData.Create(try_job_id) |
| 170 | 170 |
| 171 MonitorTryJobPipeline._UpdateTryJobMetadataForCompletedBuild( | 171 MonitorTryJobPipeline._UpdateTryJobMetadata( |
| 172 try_job_data, build, None, timed_out=False) | 172 try_job_data, None, build, None, False) |
| 173 try_job_data = WfTryJobData.Get(try_job_id) | 173 try_job_data = WfTryJobData.Get(try_job_id) |
| 174 self.assertIsNone(try_job_data.error) | 174 self.assertIsNone(try_job_data.error) |
| 175 self.assertEqual(try_job_data.regression_range_size, 2) | 175 self.assertEqual(try_job_data.regression_range_size, 2) |
| 176 self.assertEqual(try_job_data.number_of_commits_analyzed, 2) | 176 self.assertEqual(try_job_data.number_of_commits_analyzed, 2) |
| 177 self.assertEqual(try_job_data.end_time, datetime(2016, 2, 1, 22, 59, 34)) | 177 self.assertEqual(try_job_data.end_time, datetime(2016, 2, 1, 22, 59, 34)) |
| 178 self.assertEqual(try_job_data.request_time, | 178 self.assertEqual(try_job_data.request_time, |
| 179 datetime(2016, 2, 1, 22, 59, 30)) | 179 datetime(2016, 2, 1, 22, 59, 30)) |
| 180 self.assertEqual(try_job_data.try_job_url, url) | 180 self.assertEqual(try_job_data.try_job_url, url) |
| 181 | 181 |
| 182 MonitorTryJobPipeline._UpdateTryJobMetadataForCompletedBuild( | 182 MonitorTryJobPipeline._UpdateTryJobMetadata( |
| 183 try_job_data, build, None, timed_out=True) | 183 try_job_data, None, build, None, True) |
| 184 self.assertEqual(try_job_data.error, | 184 self.assertEqual(try_job_data.error, |
| 185 {'message': MonitorTryJobPipeline.TIMEOUT, | 185 {'message': 'Try job monitoring was abandoned.', |
| 186 'reason': MonitorTryJobPipeline.TIMEOUT}) | 186 'reason': MonitorTryJobPipeline.TIMEOUT}) |
| 187 | 187 |
| 188 def testGetTryJobsForCompileSuccess(self): | 188 def testGetTryJobsForCompileSuccess(self): |
| 189 master_name = 'm' | 189 master_name = 'm' |
| 190 builder_name = 'b' | 190 builder_name = 'b' |
| 191 build_number = 1 | 191 build_number = 1 |
| 192 try_job_id = '1' | 192 try_job_id = '1' |
| 193 regression_range_size = 2 | 193 regression_range_size = 2 |
| 194 | 194 |
| 195 try_job = WfTryJob.Create(master_name, builder_name, build_number) | 195 try_job = WfTryJob.Create(master_name, builder_name, build_number) |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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(analysis_status.RUNNING, try_job.status) | 300 self.assertEqual(analysis_status.RUNNING, try_job.status) |
| OLD | NEW |