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

Unified Diff: appengine/findit/waterfall/flake/test/recursive_flake_pipeline_test.py

Issue 2438673004: [Findit] Post analysis results of flakes to bug filed by chromium-try-flakes. (Closed)
Patch Set: Add a config flag to enable/disable updating monorail bug. Created 4 years, 1 month 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/waterfall/flake/test/recursive_flake_pipeline_test.py
diff --git a/appengine/findit/waterfall/flake/test/recursive_flake_pipeline_test.py b/appengine/findit/waterfall/flake/test/recursive_flake_pipeline_test.py
index 617ce22052834b2797d3dbf229370f04126f0412..cebf9d69362864ba60fccd013948e3affe8f3e85 100644
--- a/appengine/findit/waterfall/flake/test/recursive_flake_pipeline_test.py
+++ b/appengine/findit/waterfall/flake/test/recursive_flake_pipeline_test.py
@@ -163,7 +163,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
@mock.patch.object(
recursive_flake_pipeline, '_GetETAToStartAnalysis', return_value=None)
- def testNextBuildPipelineForNewRecursionFirstFlake(self, _mocked_eta_func):
+ @mock.patch.object(
+ recursive_flake_pipeline, '_UpdateBugWithResult', return_value=None)
+ def testNextBuildPipelineForNewRecursionFirstFlake(self, *_):
master_name = 'm'
builder_name = 'b'
master_build_number = 100
@@ -209,7 +211,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
@mock.patch.object(
recursive_flake_pipeline, '_GetETAToStartAnalysis', return_value=None)
- def testNextBuildPipelineForNewRecursionFirstStable(self, _mocked_eta_func):
+ @mock.patch.object(
+ recursive_flake_pipeline, '_UpdateBugWithResult', return_value=None)
+ def testNextBuildPipelineForNewRecursionFirstStable(self, *_):
master_name = 'm'
builder_name = 'b'
master_build_number = 100
@@ -253,7 +257,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
@mock.patch.object(
recursive_flake_pipeline, '_GetETAToStartAnalysis', return_value=None)
- def testNextBuildPipelineForNewRecursionFlakeInARow(self, _mocked_eta_func):
+ @mock.patch.object(
+ recursive_flake_pipeline, '_UpdateBugWithResult', return_value=None)
+ def testNextBuildPipelineForNewRecursionFlakeInARow(self, *_):
master_name = 'm'
builder_name = 'b'
master_build_number = 100
@@ -298,7 +304,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
@mock.patch.object(
recursive_flake_pipeline, '_GetETAToStartAnalysis', return_value=None)
- def testNextBuildPipelineForNewRecursionStableInARow(self, _mocked_eta_func):
+ @mock.patch.object(
+ recursive_flake_pipeline, '_UpdateBugWithResult', return_value=None)
+ def testNextBuildPipelineForNewRecursionStableInARow(self, *_):
master_name = 'm'
builder_name = 'b'
master_build_number = 100
@@ -343,8 +351,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
@mock.patch.object(
recursive_flake_pipeline, '_GetETAToStartAnalysis', return_value=None)
- def testNextBuildPipelineForNewRecursionLessThanLastBuildNumber(
- self, _mocked_eta_func):
+ @mock.patch.object(
+ recursive_flake_pipeline, '_UpdateBugWithResult', return_value=None)
+ def testNextBuildPipelineForNewRecursionLessThanLastBuildNumber(self, *_):
master_name = 'm'
builder_name = 'b'
master_build_number = 100
@@ -394,7 +403,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
@mock.patch.object(
recursive_flake_pipeline, '_GetETAToStartAnalysis', return_value=None)
- def testNextBuildPipelineForFailedSwarmingTask(self, _mocked_eta_func):
+ @mock.patch.object(
+ recursive_flake_pipeline, '_UpdateBugWithResult', return_value=None)
+ def testNextBuildPipelineForFailedSwarmingTask(self, *_):
master_name = 'm'
builder_name = 'b'
master_build_number = 100
@@ -444,8 +455,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
@mock.patch.object(
recursive_flake_pipeline, '_GetETAToStartAnalysis', return_value=None)
- def testNextBuildPipelineForNewRecursionStabledFlakedOut(
- self, _mocked_eta_func):
+ @mock.patch.object(
+ recursive_flake_pipeline, '_UpdateBugWithResult', return_value=None)
+ def testNextBuildPipelineForNewRecursionStabledFlakedOut(self, *_):
master_name = 'm'
builder_name = 'b'
master_build_number = 100
@@ -698,7 +710,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
@mock.patch.object(
recursive_flake_pipeline, '_GetETAToStartAnalysis', return_value=None)
- def testNextBuildPipelineStabledOutFlakedOutFirstTime(self, _mocked_eta_func):
+ @mock.patch.object(
+ recursive_flake_pipeline, '_UpdateBugWithResult', return_value=None)
+ def testNextBuildPipelineStabledOutFlakedOutFirstTime(self, *_):
master_name = 'm'
builder_name = 'b'
master_build_number = 100
@@ -881,3 +895,67 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
recursive_flake_pipeline._UpdateAnalysisStatusUponCompletion(
analysis, analysis_status.COMPLETED, None)
self.assertEqual(analysis.result_status, result_status.FOUND_UNTRIAGED)
+
+ @mock.patch(
+ 'waterfall.flake.recursive_flake_pipeline.PostCommentToBugPipeline')
+ def testNotUpdateBugWithResultWithoutAttachedBug(self, mocked_pipeline):
+ master_name = 'm'
+ builder_name = 'b'
+ master_build_number = 100
+ step_name = 's'
+ test_name = 't'
+ analysis = MasterFlakeAnalysis.Create(
+ master_name, builder_name, master_build_number, step_name, test_name)
+ analysis.algorithm_parameters = {'update_monorail_bug': True}
+ self.assertFalse(
+ recursive_flake_pipeline._UpdateBugWithResult(analysis, None))
+ mocked_pipeline.assert_not_called()
+
+ @mock.patch(
+ 'waterfall.flake.recursive_flake_pipeline.PostCommentToBugPipeline')
+ def testNotUpdateBugWithResultIfDisabled(self, mocked_pipeline):
+ master_name = 'm'
+ builder_name = 'b'
+ master_build_number = 100
+ step_name = 's'
+ test_name = 't'
+ analysis = MasterFlakeAnalysis.Create(
+ master_name, builder_name, master_build_number, step_name, test_name)
+ analysis.bug_id = 123
+ analysis.algorithm_parameters = {'update_monorail_bug': False}
+ self.assertFalse(
+ recursive_flake_pipeline._UpdateBugWithResult(analysis, None))
+ mocked_pipeline.assert_not_called()
+
+ @mock.patch(
+ 'waterfall.flake.recursive_flake_pipeline.PostCommentToBugPipeline')
+ def testUpdateBugWithResultWithAttachedBug(self, mocked_pipeline):
+ mocked_target = mock.Mock()
+ mocked_pipeline.attach_mock(mocked_target, 'target')
+ master_name = 'm'
+ builder_name = 'b'
+ master_build_number = 100
+ step_name = 's'
+ test_name = 't'
+ algorithm_parameters = {
+ 'update_monorail_bug': True,
+ }
+ analysis = MasterFlakeAnalysis.Create(
+ master_name, builder_name, master_build_number, step_name, test_name)
+ analysis.algorithm_parameters = algorithm_parameters
+ analysis.bug_id = 123
+ analysis.original_master_name = 'om'
+ analysis.original_builder_name = 'ob'
+ analysis.original_step_name = 'os'
+ self.assertTrue(
+ recursive_flake_pipeline._UpdateBugWithResult(analysis, 'queue'))
+ calls = mocked_pipeline.mock_calls
+ self.assertEqual(2, len(calls))
+
+ _, args, __ = calls[0]
+ bug_id, comment, labels = args
+ self.assertEqual(123, bug_id)
+ self.assertEqual(['AnalyzedByFindit'], labels)
+ self.assertTrue('om / ob / os' in comment)
+
+ self.assertEqual(mock.call().start(queue_name='queue'), calls[1])

Powered by Google App Engine
This is Rietveld 408576698