def testValidateAndConvertBuildbucketResponse_NoResults(self): buildbucket_response_scheduled = r"""{ "build": { "status": "SCHEDULED", "id": "9043191319901995952" } }""" with self.assertRaises(update_bug_with_results.UnexpectedJsonError): update_bug_with_results._ValidateAndConvertBuildbucketResponse(json.loads(buildbucket_response_scheduled))
def testValidateAndConvertBuildbucketResponse_NoResults(self): buildbucket_response_scheduled = r"""{ "build": { "status": "SCHEDULED", "id": "9043191319901995952" } }""" with self.assertRaises(update_bug_with_results.UnexpectedJsonError): update_bug_with_results._ValidateAndConvertBuildbucketResponse( json.loads(buildbucket_response_scheduled))
def testValidateAndConvertBuildbucketResponse_InvalidConfig(self): buildbucket_response_canceled = r"""{ "build": { "status": "COMPLETED", "failure_reason": "INVALID_BUILD_DEFINITION", "id": "9043278384371361584", "result": "FAILURE" } }""" try_job.TryJob( bug_id=12345, rietveld_issue_id=200037, rietveld_patchset_id=1, status='started', bot='win_perf').put() pending_jobs = try_job.TryJob.query().fetch() self.assertEqual(1, len(pending_jobs)) # Create bug. bug_data.Bug(id=12345).put() with self.assertRaises(update_bug_with_results.UnexpectedJsonError): update_bug_with_results._ValidateAndConvertBuildbucketResponse( json.loads(buildbucket_response_canceled), pending_jobs[0]) pending_jobs = try_job.TryJob.query().fetch() self.assertEqual(0, len(pending_jobs))
def testValidateAndConvertBuildbucketResponse_NoTesterInConfig( self, mock_logging_error): job_info = { 'build': { 'status': 'foo', 'url': 'www.baz.com', 'result': 'bar', } } result = update_bug_with_results._ValidateAndConvertBuildbucketResponse( job_info) self.assertEqual('Unknown', result['builder']) self.assertEqual(1, mock_logging_error.call_count)
def testValidateAndConvertBuildbucketResponse_Canceled(self): buildbucket_response_canceled = r"""{ "build": { "status": "COMPLETED", "cancelation_reason": "TIMEOUT", "id": "9043278384371361584", "result": "CANCELED" } }""" try_job.TryJob( bug_id=12345, rietveld_issue_id=200037, rietveld_patchset_id=1, status='started', bot='win_perf').put() pending_jobs = try_job.TryJob.query().fetch() self.assertEqual(1, len(pending_jobs)) # Create bug. bug_data.Bug(id=12345).put() with self.assertRaises(update_bug_with_results.UnexpectedJsonError): update_bug_with_results._ValidateAndConvertBuildbucketResponse( json.loads(buildbucket_response_canceled), pending_jobs[0]) pending_jobs = try_job.TryJob.query( try_job.TryJob.status == 'failed').fetch() self.assertEqual(1, len(pending_jobs))
def testValidateAndConvertBuildbucketResponse_TesterInConfig(self): job_info = { "build": { "status": "foo", "url": "www.baz.com", "result": "bar", "result_details_json": json.dumps( {"properties": {"bisect_config": {"recipe_tester_name": "my_perf_bisect"}}} ), } } result = update_bug_with_results._ValidateAndConvertBuildbucketResponse(job_info) self.assertEqual("my_perf_bisect", result["builder"])
def testValidateAndConvertBuildbucketResponse_NoTesterInConfig( self, mock_logging_error): job_info_json = """{ "build": { "status": "foo", "url": "www.baz.com", "result": "bar" } }""" result = update_bug_with_results._ValidateAndConvertBuildbucketResponse( json.loads(job_info_json)) self.assertEqual('Unknown', result['builder']) self.assertEqual(1, mock_logging_error.call_count)
def testValidateAndConvertBuildbucketResponse_Success(self): buildbucket_response_success = r"""{ "build": { "status": "COMPLETED", "url": "http://build.chromium.org/linux_perf_bisector/builds/47", "id": "9043278384371361584", "result": "SUCCESS" } }""" converted_response = update_bug_with_results._ValidateAndConvertBuildbucketResponse( json.loads(buildbucket_response_success) ) self.assertIn("http", converted_response["url"]) self.assertEqual(converted_response["result"], update_bug_with_results.SUCCESS)
def testValidateAndConvertBuildbucketResponse_Success(self): buildbucket_response_success = r"""{ "build": { "status": "COMPLETED", "url": "http://build.chromium.org/linux_perf_bisector/builds/47", "id": "9043278384371361584", "result": "SUCCESS" } }""" converted_response = ( update_bug_with_results._ValidateAndConvertBuildbucketResponse( json.loads(buildbucket_response_success))) self.assertIn('http', converted_response['url']) self.assertEqual(converted_response['result'], update_bug_with_results.SUCCESS)
def testValidateAndConvertBuildbucketResponse_Failed(self): buildbucket_response_failed = r"""{ "build": { "status": "COMPLETED", "url": "http://build.chromium.org/linux_perf_bisector/builds/41", "failure_reason": "BUILD_FAILURE", "result": "FAILURE", "id": "9043547105089652704" } }""" converted_response = update_bug_with_results._ValidateAndConvertBuildbucketResponse( json.loads(buildbucket_response_failed) ) self.assertIn("http", converted_response["url"]) self.assertEqual(converted_response["result"], update_bug_with_results.FAILURE)
def testValidateAndConvertBuildbucketResponse_TesterInConfig(self): job_info = { 'build': { 'status': 'foo', 'url': 'www.baz.com', 'result': 'bar', 'result_details_json': json.dumps({ 'properties': { 'bisect_config': {'recipe_tester_name': 'my_perf_bisect'} } }) } } result = update_bug_with_results._ValidateAndConvertBuildbucketResponse( job_info) self.assertEqual('my_perf_bisect', result['builder'])
def testValidateAndConvertBuildbucketResponse_Failed(self): buildbucket_response_failed = r"""{ "build": { "status": "COMPLETED", "url": "http://build.chromium.org/linux_perf_bisector/builds/41", "failure_reason": "BUILD_FAILURE", "result": "FAILURE", "id": "9043547105089652704" } }""" converted_response = ( update_bug_with_results._ValidateAndConvertBuildbucketResponse( json.loads(buildbucket_response_failed))) self.assertIn('http', converted_response['url']) self.assertEqual(converted_response['result'], update_bug_with_results.FAILURE)
def testValidateAndConvertBuildbucketResponse_TesterInConfig(self): job_info_json = """{ "build": { "status": "foo", "url": "www.baz.com", "result": "bar", "result_details": { "properties": { "bisect_config": { "recipe_tester_name": "my_perf_bisect" } } } } }""" result = update_bug_with_results._ValidateAndConvertBuildbucketResponse( json.loads(job_info_json)) self.assertEqual('my_perf_bisect', result['builder'])
def testValidateAndConvertBuildbucketResponse_TesterInConfig(self): job_info = { 'build': { 'status': 'foo', 'url': 'www.baz.com', 'result': 'bar', 'result_details_json': json.dumps({ 'properties': { 'bisect_config': { 'recipe_tester_name': 'my_perf_bisect' } } }) } } result = update_bug_with_results._ValidateAndConvertBuildbucketResponse( job_info) self.assertEqual('my_perf_bisect', result['builder'])
def testValidateAndConvertBuildbucketResponse_NoTesterInConfig(self, mock_logging_error): job_info = {"build": {"status": "foo", "url": "www.baz.com", "result": "bar"}} result = update_bug_with_results._ValidateAndConvertBuildbucketResponse(job_info) self.assertEqual("Unknown", result["builder"]) self.assertEqual(1, mock_logging_error.call_count)