| Index: appengine/findit/handlers/test/try_job_result_test.py
|
| diff --git a/appengine/findit/handlers/test/try_job_result_test.py b/appengine/findit/handlers/test/try_job_result_test.py
|
| index f646a6e70f8807a221da4d5acc7193032af62700..fc219f3483d18a9b43f9643c38bb43ed9062e5bc 100644
|
| --- a/appengine/findit/handlers/test/try_job_result_test.py
|
| +++ b/appengine/findit/handlers/test/try_job_result_test.py
|
| @@ -1,7 +1,7 @@
|
| # Copyright 2015 The Chromium Authors. All rights reserved.
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
| -
|
| +import json
|
| import webapp2
|
|
|
| from testing_utils import testing
|
| @@ -15,7 +15,7 @@ from waterfall import buildbot
|
|
|
| class TryJobResultTest(testing.AppengineTestCase):
|
| app_module = webapp2.WSGIApplication([
|
| - ('/try-job-result', try_job_result.TryJobResult), ], debug=True)
|
| + ('/try-job-result', try_job_result.TryJobResult),], debug=True)
|
|
|
| def setUp(self):
|
| super(TryJobResultTest, self).setUp()
|
| @@ -29,20 +29,7 @@ class TryJobResultTest(testing.AppengineTestCase):
|
| self.master_name, self.builder_name, self.build_number)
|
| analysis.put()
|
|
|
| - result = try_job_result._GetTryJobResult(
|
| - self.master_name, self.builder_name, self.build_number)
|
| -
|
| - self.assertEqual({}, result)
|
| -
|
| - def testGetTryJobResultReturnNoneIfNoCompileFailure(self):
|
| - analysis = WfAnalysis.Create(
|
| - self.master_name, self.builder_name, self.build_number)
|
| - analysis.failure_result_map = {
|
| - 'browser_tests': 'm/b/121'
|
| - }
|
| - analysis.put()
|
| -
|
| - result = try_job_result._GetTryJobResult(
|
| + result = try_job_result._GetAllTryJobResults(
|
| self.master_name, self.builder_name, self.build_number)
|
|
|
| self.assertEqual({}, result)
|
| @@ -55,11 +42,18 @@ class TryJobResultTest(testing.AppengineTestCase):
|
| }
|
| analysis.put()
|
|
|
| - result = try_job_result._GetTryJobResult(
|
| + result = try_job_result._GetAllTryJobResults(
|
| self.master_name, self.builder_name, self.build_number)
|
|
|
| - self.assertEqual({}, result)
|
| + expected_result = {
|
| + 'compile': {
|
| + 'step': 'compile',
|
| + 'test': 'N/A',
|
| + 'try_job_key': 'm/b/121'
|
| + }
|
| + }
|
|
|
| + self.assertEqual(expected_result, result)
|
|
|
| def testGetTryJobResultOnlyReturnStatusIfPending(self):
|
| analysis = WfAnalysis.Create(
|
| @@ -70,14 +64,19 @@ class TryJobResultTest(testing.AppengineTestCase):
|
| analysis.put()
|
|
|
| try_job = WfTryJob.Create(
|
| - self.master_name, self.builder_name, self.build_number)
|
| + self.master_name, self.builder_name, self.build_number)
|
| try_job.put()
|
|
|
| - result = try_job_result._GetTryJobResult(
|
| + result = try_job_result._GetAllTryJobResults(
|
| self.master_name, self.builder_name, self.build_number)
|
|
|
| expected_result = {
|
| - 'status': 'Pending'
|
| + 'compile': {
|
| + 'step': 'compile',
|
| + 'test': 'N/A',
|
| + 'try_job_key': 'm/b/121',
|
| + 'status': 'Pending'
|
| + }
|
| }
|
|
|
| self.assertEqual(expected_result, result)
|
| @@ -91,24 +90,31 @@ class TryJobResultTest(testing.AppengineTestCase):
|
| analysis.put()
|
|
|
| try_job = WfTryJob.Create(
|
| - self.master_name, self.builder_name, self.build_number)
|
| + self.master_name, self.builder_name, self.build_number)
|
| try_job.status = wf_analysis_status.ANALYZING
|
| try_job.compile_results = [
|
| {
|
| 'result': None,
|
| - 'url': 'url'
|
| + 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/'
|
| + 'builders/linux_chromium_variable/builds/121')
|
| }
|
| ]
|
| try_job.put()
|
|
|
| - result = try_job_result._GetTryJobResult(
|
| + result = try_job_result._GetAllTryJobResults(
|
| self.master_name, self.builder_name, self.build_number)
|
|
|
| expected_result = {
|
| - 'status': 'Analyzing',
|
| - 'try_job_url': 'url'
|
| + 'compile': {
|
| + 'step': 'compile',
|
| + 'test': 'N/A',
|
| + 'try_job_key': 'm/b/121',
|
| + 'status': 'Running',
|
| + 'try_job_build_number': 121,
|
| + 'try_job_url': ('http://build.chromium.org/p/tryserver.chromium.'
|
| + 'linux/builders/linux_chromium_variable/builds/121')
|
| + }
|
| }
|
| -
|
| self.assertEqual(expected_result, result)
|
|
|
| def testGetTryJobResultOnlyReturnStatusIfError(self):
|
| @@ -120,7 +126,7 @@ class TryJobResultTest(testing.AppengineTestCase):
|
| analysis.put()
|
|
|
| try_job = WfTryJob.Create(
|
| - self.master_name, self.builder_name, self.build_number)
|
| + self.master_name, self.builder_name, self.build_number)
|
| try_job.status = wf_analysis_status.ERROR
|
| try_job.compile_results = [
|
| {
|
| @@ -129,11 +135,16 @@ class TryJobResultTest(testing.AppengineTestCase):
|
| ]
|
| try_job.put()
|
|
|
| - result = try_job_result._GetTryJobResult(
|
| + result = try_job_result._GetAllTryJobResults(
|
| self.master_name, self.builder_name, self.build_number)
|
|
|
| expected_result = {
|
| - 'status': 'Error'
|
| + 'compile': {
|
| + 'step': 'compile',
|
| + 'test': 'N/A',
|
| + 'try_job_key': 'm/b/121',
|
| + 'status': 'Error'
|
| + }
|
| }
|
|
|
| self.assertEqual(expected_result, result)
|
| @@ -147,7 +158,7 @@ class TryJobResultTest(testing.AppengineTestCase):
|
| analysis.put()
|
|
|
| try_job = WfTryJob.Create(
|
| - self.master_name, self.builder_name, self.build_number)
|
| + self.master_name, self.builder_name, self.build_number)
|
| try_job.status = wf_analysis_status.ANALYZED
|
| try_job.compile_results = [
|
| {
|
| @@ -155,26 +166,37 @@ class TryJobResultTest(testing.AppengineTestCase):
|
| ['rev1', 'passed'],
|
| ['rev2', 'failed']
|
| ],
|
| - 'url': 'url',
|
| + 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/'
|
| + 'builders/linux_chromium_variable/builds/121'),
|
| 'try_job_id': '1',
|
| 'culprit': {
|
| - 'revision': 'rev2',
|
| - 'commit_position': '2',
|
| - 'review_url': 'url_2'
|
| + 'compile': {
|
| + 'revision': 'rev2',
|
| + 'commit_position': '2',
|
| + 'review_url': 'url_2'
|
| + }
|
| }
|
| }
|
| ]
|
| try_job.put()
|
|
|
| - result = try_job_result._GetTryJobResult(
|
| + result = try_job_result._GetAllTryJobResults(
|
| self.master_name, self.builder_name, self.build_number)
|
|
|
| expected_result = {
|
| - 'status': 'Analyzed',
|
| - 'try_job_url': 'url',
|
| - 'revision': 'rev2',
|
| - 'commit_position': '2',
|
| - 'review_url': 'url_2'
|
| + 'compile': {
|
| + 'step': 'compile',
|
| + 'test': 'N/A',
|
| + 'try_job_key': 'm/b/121',
|
| + 'try_job_build_number': 121,
|
| + 'status': 'Completed',
|
| + 'try_job_url': (
|
| + 'http://build.chromium.org/p/tryserver.chromium.linux/'
|
| + 'builders/linux_chromium_variable/builds/121'),
|
| + 'revision': 'rev2',
|
| + 'commit_position': '2',
|
| + 'review_url': 'url_2'
|
| + }
|
| }
|
|
|
| self.assertEqual(expected_result, result)
|
| @@ -188,7 +210,7 @@ class TryJobResultTest(testing.AppengineTestCase):
|
| analysis.put()
|
|
|
| try_job = WfTryJob.Create(
|
| - self.master_name, self.builder_name, self.build_number)
|
| + self.master_name, self.builder_name, self.build_number)
|
| try_job.status = wf_analysis_status.ANALYZED
|
| try_job.compile_results = [
|
| {
|
| @@ -196,17 +218,26 @@ class TryJobResultTest(testing.AppengineTestCase):
|
| ['rev1', 'passed'],
|
| ['rev2', 'passed']
|
| ],
|
| - 'url': 'url'
|
| + 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/'
|
| + 'builders/linux_chromium_variable/builds/121')
|
| }
|
| ]
|
| try_job.put()
|
|
|
| - result = try_job_result._GetTryJobResult(
|
| + result = try_job_result._GetAllTryJobResults(
|
| self.master_name, self.builder_name, self.build_number)
|
|
|
| expected_result = {
|
| - 'status': 'Analyzed',
|
| - 'try_job_url': 'url'
|
| + 'compile': {
|
| + 'step': 'compile',
|
| + 'test': 'N/A',
|
| + 'try_job_key': 'm/b/121',
|
| + 'try_job_build_number': 121,
|
| + 'status': 'Completed',
|
| + 'try_job_url': (
|
| + 'http://build.chromium.org/p/tryserver.chromium.linux/'
|
| + 'builders/linux_chromium_variable/builds/121')
|
| + }
|
| }
|
|
|
| self.assertEqual(expected_result, result)
|
| @@ -219,3 +250,226 @@ class TryJobResultTest(testing.AppengineTestCase):
|
|
|
| self.assertEqual(200, response.status_int)
|
| self.assertEqual(expected_results, response.json_body)
|
| +
|
| + def testGetTryJobResultWhenTryJobForTestCompleted(self):
|
| + analysis = WfAnalysis.Create(
|
| + self.master_name, self.builder_name, self.build_number)
|
| + analysis.failure_result_map = {
|
| + 'a_test': {
|
| + 'a_test1': 'm/b/121',
|
| + 'a_test2': 'm/b/121',
|
| + 'a_test3': 'm/b/120'
|
| + },
|
| + 'b_test': {
|
| + 'b_test1': 'm/b/121'
|
| + },
|
| + 'c_test': 'm/b/121',
|
| + 'd_test': 'm/b/122'
|
| + }
|
| + analysis.put()
|
| +
|
| + try_job_120 = WfTryJob.Create(
|
| + self.master_name, self.builder_name, 120)
|
| + try_job_120.status = wf_analysis_status.ANALYZED
|
| + try_job_120.test_results = [
|
| + {
|
| + 'result': {
|
| + 'rev0': {
|
| + 'a_test': {
|
| + 'status': 'failed',
|
| + 'valid': True,
|
| + 'failures': ['a_test3']
|
| + }
|
| + }
|
| + },
|
| + 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/'
|
| + 'builders/linux_chromium_variable/builds/120'),
|
| + 'try_job_id': '0',
|
| + 'culprit': {
|
| + 'a_test': {
|
| + 'tests': {
|
| + 'a_test3': {
|
| + 'revision': 'rev0',
|
| + 'commit_position': '0',
|
| + 'review_url': 'url_0'
|
| + }
|
| + }
|
| + }
|
| + }
|
| + }
|
| + ]
|
| + try_job_120.put()
|
| +
|
| + try_job_121 = WfTryJob.Create(
|
| + self.master_name, self.builder_name, self.build_number)
|
| + try_job_121.status = wf_analysis_status.ANALYZED
|
| + try_job_121.test_results = [
|
| + {
|
| + 'result': {
|
| + 'rev1': {
|
| + 'a_test': {
|
| + 'status': 'failed',
|
| + 'valid': True,
|
| + 'failures': ['a_test1']
|
| + },
|
| + 'b_test': {
|
| + 'status': 'failed',
|
| + 'valid': True,
|
| + 'failures': ['b_test1']
|
| + },
|
| + 'c_test': {
|
| + 'status': 'passed',
|
| + 'valid': True
|
| + }
|
| + },
|
| + 'rev2': {
|
| + 'a_test': {
|
| + 'status': 'failed',
|
| + 'valid': True,
|
| + 'failures': ['a_test1']
|
| + },
|
| + 'b_test': {
|
| + 'status': 'passed',
|
| + 'valid': True
|
| + },
|
| + 'c_test': {
|
| + 'status': 'failed',
|
| + 'valid': True,
|
| + 'failures': []
|
| + }
|
| + }
|
| + },
|
| + 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/'
|
| + 'builders/linux_chromium_variable/builds/121'),
|
| + 'try_job_id': '1',
|
| + 'culprit': {
|
| + 'a_test': {
|
| + 'tests': {
|
| + 'a_test1': {
|
| + 'revision': 'rev1',
|
| + 'commit_position': '1',
|
| + 'review_url': 'url_1'
|
| + }
|
| + }
|
| + },
|
| + 'b_test': {
|
| + 'tests': {
|
| + 'b_test1': {
|
| + 'revision': 'rev1',
|
| + 'commit_position': '1',
|
| + 'review_url': 'url_1'
|
| + }
|
| + }
|
| + },
|
| + 'c_test': {
|
| + 'revision': 'rev2',
|
| + 'commit_position': '2',
|
| + 'review_url': 'url_2',
|
| + 'tests': {}
|
| + }
|
| + }
|
| + }
|
| + ]
|
| + try_job_121.put()
|
| +
|
| + try_job_122 = WfTryJob.Create(
|
| + self.master_name, self.builder_name, 122)
|
| + try_job_122.status = wf_analysis_status.ANALYZED
|
| + try_job_122.test_results = [
|
| + {
|
| + 'result': {
|
| + 'rev3': {
|
| + 'd_test': {
|
| + 'status': 'passed',
|
| + 'valid': True,
|
| + 'failures': []
|
| + }
|
| + }
|
| + },
|
| + 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/'
|
| + 'builders/linux_chromium_variable/builds/122'),
|
| + 'try_job_id': '2'
|
| + }
|
| + ]
|
| + try_job_122.put()
|
| +
|
| + result = try_job_result._GetAllTryJobResults(
|
| + self.master_name, self.builder_name, self.build_number)
|
| +
|
| + expected_result = {
|
| + 'a_test-a_test1': {
|
| + 'step': 'a_test',
|
| + 'test': 'a_test1',
|
| + 'try_job_key': 'm/b/121',
|
| + 'try_job_build_number': 121,
|
| + 'status': 'Completed',
|
| + 'try_job_url': (
|
| + 'http://build.chromium.org/p/tryserver.chromium.linux/'
|
| + 'builders/linux_chromium_variable/builds/121'),
|
| + 'revision': 'rev1',
|
| + 'commit_position': '1',
|
| + 'review_url': 'url_1'
|
| + },
|
| + 'a_test-a_test2': {
|
| + 'step': 'a_test',
|
| + 'test': 'a_test2',
|
| + 'try_job_key': 'm/b/121',
|
| + 'status': 'Completed',
|
| + 'try_job_build_number': 121,
|
| + 'try_job_url': (
|
| + 'http://build.chromium.org/p/tryserver.chromium.linux/'
|
| + 'builders/linux_chromium_variable/builds/121'),
|
| + },
|
| + 'a_test-a_test3': {
|
| + 'step': 'a_test',
|
| + 'test': 'a_test3',
|
| + 'try_job_key': 'm/b/120',
|
| + 'try_job_build_number': 120,
|
| + 'status': 'Completed',
|
| + 'try_job_url': (
|
| + 'http://build.chromium.org/p/tryserver.chromium.linux/'
|
| + 'builders/linux_chromium_variable/builds/120'),
|
| + 'revision': 'rev0',
|
| + 'commit_position': '0',
|
| + 'review_url': 'url_0'
|
| + },
|
| + 'b_test-b_test1': {
|
| + 'step': 'b_test',
|
| + 'test': 'b_test1',
|
| + 'try_job_key': 'm/b/121',
|
| + 'try_job_build_number': 121,
|
| + 'status': 'Completed',
|
| + 'try_job_url': (
|
| + 'http://build.chromium.org/p/tryserver.chromium.linux/'
|
| + 'builders/linux_chromium_variable/builds/121'),
|
| + 'revision': 'rev1',
|
| + 'commit_position': '1',
|
| + 'review_url': 'url_1'
|
| + },
|
| + 'c_test': {
|
| + 'step': 'c_test',
|
| + 'test': 'N/A',
|
| + 'try_job_key': 'm/b/121',
|
| + 'try_job_build_number': 121,
|
| + 'status': 'Completed',
|
| + 'try_job_url': (
|
| + 'http://build.chromium.org/p/tryserver.chromium.linux/'
|
| + 'builders/linux_chromium_variable/builds/121'),
|
| + 'revision': 'rev2',
|
| + 'commit_position': '2',
|
| + 'review_url': 'url_2'
|
| + },
|
| + 'd_test': {
|
| + 'step': 'd_test',
|
| + 'test': 'N/A',
|
| + 'try_job_key': 'm/b/122',
|
| + 'try_job_build_number': 122,
|
| + 'status': 'Completed',
|
| + 'try_job_url': (
|
| + 'http://build.chromium.org/p/tryserver.chromium.linux/'
|
| + 'builders/linux_chromium_variable/builds/122')
|
| + }
|
| + }
|
| + print json.dumps(result, indent=4, sort_keys=True)
|
| + print json.dumps(expected_result, indent=4, sort_keys=True)
|
| + self.assertEqual(expected_result, result)
|
|
|