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

Unified Diff: appengine/findit/handlers/test/try_job_result_test.py

Issue 1652603003: [Findit] Modify result page to display tryjob result for test failure. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@1228-try-job-pipeline-for-test-failure
Patch Set: . Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | appengine/findit/handlers/try_job_result.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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)
« no previous file with comments | « no previous file | appengine/findit/handlers/try_job_result.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698