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

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, 11 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
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..7eb5a86317abbbd3f1a4c053d6ced0373b31065b 100644
--- a/appengine/findit/handlers/test/try_job_result_test.py
+++ b/appengine/findit/handlers/test/try_job_result_test.py
@@ -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,10 +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):
@@ -73,11 +68,16 @@ class TryJobResultTest(testing.AppengineTestCase):
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)
@@ -96,19 +96,26 @@ class TryJobResultTest(testing.AppengineTestCase):
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):
@@ -129,11 +136,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)
@@ -155,26 +167,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)
@@ -196,17 +219,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':{
stgao 2016/02/02 21:08:32 nit: space ": {". I guess pylint or gpylint will
chanli 2016/02/02 22:18:12 Done.
+ '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 +251,244 @@ 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', 'a_test2']
+ },
+ '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'
+ },
+ 'a_test2': {
+ 'revision': 'rev2',
+ 'commit_position': '2',
+ 'review_url': 'url_2'
+ }
+ }
+ },
+ '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': 'failed',
+ 'valid': True,
+ 'failures': []
+ }
+ }
+ },
+ 'url': ('http://build.chromium.org/p/tryserver.chromium.linux/'
+ 'builders/linux_chromium_variable/builds/122'),
+ 'try_job_id': '2',
+ 'culprit': {
+ 'd_test': {
+ 'revision': 'rev3',
+ 'commit_position': '3',
+ 'review_url': 'url_3',
+ 'tests': {}
+ }
+ }
+ }
+ ]
+ 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',
+ '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'
+ },
+ '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'),
+ 'revision': 'rev3',
+ 'commit_position': '3',
+ 'review_url': 'url_3'
+ }
+ }
+ self.assertEqual(expected_result, result)
« no previous file with comments | « no previous file | appengine/findit/handlers/try_job_result.py » ('j') | appengine/findit/handlers/try_job_result.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698