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

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

Issue 2369333002: [Findit] Capture versionized metadata for master_flake_analysis (Closed)
Patch Set: Fixing passing version through pipelines Created 4 years, 3 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/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 7d7f943eaab4d345d52f9ed71f071bf00c0f6720..fb407c4612fb00c277eb3cd8b55d88d01b9b3795 100644
--- a/appengine/findit/waterfall/flake/test/recursive_flake_pipeline_test.py
+++ b/appengine/findit/waterfall/flake/test/recursive_flake_pipeline_test.py
@@ -5,8 +5,8 @@
from common import constants
from common.pipeline_wrapper import pipeline_handlers
from model import analysis_status
-from model.flake.master_flake_analysis import MasterFlakeAnalysis
from model.flake.flake_swarming_task import FlakeSwarmingTask
+from model.flake.master_flake_analysis import MasterFlakeAnalysis
from waterfall.flake import recursive_flake_pipeline
from waterfall.flake.recursive_flake_pipeline import get_next_run
from waterfall.flake.recursive_flake_pipeline import NextBuildNumberPipeline
@@ -19,12 +19,12 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
app_module = pipeline_handlers._APP
def _CreateAndSaveMasterFlakeAnalysis(
- self, master_name, builder_name, build_number,
- step_name, test_name, status):
+ self, master_name, builder_name, build_number, step_name,
+ test_name, status):
analysis = MasterFlakeAnalysis.Create(
master_name, builder_name, build_number, step_name, test_name)
analysis.status = status
- analysis.put()
+ analysis.Save()
def _CreateAndSaveFlakeSwarmingTask(
self, master_name, builder_name, build_number,
@@ -59,10 +59,10 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
}
- self._CreateAndSaveMasterFlakeAnalysis(
- master_name, builder_name, master_build_number, step_name,
- test_name, status=analysis_status.PENDING
- )
+ analysis = MasterFlakeAnalysis.Create(
+ master_name, builder_name, master_build_number, step_name, test_name)
+ analysis.status = analysis_status.PENDING
+ analysis.Save()
self.MockPipeline(
recursive_flake_pipeline.TriggerFlakeSwarmingTaskPipeline,
@@ -76,7 +76,8 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
'test_result_future',
expected_args=[master_name, builder_name,
run_build_number, step_name, task_id,
- master_build_number, test_name],
+ master_build_number, test_name,
+ analysis.version_number],
expected_kwargs={})
self.MockPipeline(
@@ -84,15 +85,16 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
'',
expected_args=[master_name, builder_name, master_build_number,
build_number, step_name, test_name,
+ analysis.version_number,
test_result_future, queue_name,
flakiness_algorithm_results_dict],
expected_kwargs={})
- rfp = RecursiveFlakePipeline(master_name, builder_name, build_number,
- step_name, test_name, master_build_number,
- flakiness_algorithm_results_dict=
- flakiness_algorithm_results_dict,
- queue_name=queue_name)
+ rfp = RecursiveFlakePipeline(
+ master_name, builder_name, build_number, step_name, test_name,
+ analysis.version_number, master_build_number,
+ flakiness_algorithm_results_dict=flakiness_algorithm_results_dict,
+ queue_name=queue_name)
rfp.start(queue_name=queue_name)
self.execute_queued_tasks()
@@ -126,16 +128,17 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
master_name, builder_name, build_number, step_name,
test_name, status=analysis_status.COMPLETED
)
- analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
- build_number, step_name, test_name)
- analysis.success_rates.append(.08)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name)
+ analysis.pass_rates.append(.08)
analysis.build_numbers.append(100)
analysis.put()
NextBuildNumberPipeline.run(
NextBuildNumberPipeline(), master_name, builder_name,
master_build_number, build_number, step_name, test_name,
- test_result_future, queue_name, flakiness_algorithm_results_dict)
+ analysis.version_number, test_result_future, queue_name,
+ flakiness_algorithm_results_dict)
self.assertEquals(flakiness_algorithm_results_dict['flakes_in_a_row'], 1)
def testNextBuildPipelineForNewRecursionFirstStable(self):
@@ -167,16 +170,16 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
master_name, builder_name, build_number, step_name,
test_name, status=analysis_status.COMPLETED
)
- analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
- build_number, step_name, test_name)
- analysis.success_rates.append(0)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name)
+ analysis.pass_rates.append(0)
analysis.build_numbers.append(100)
analysis.put()
NextBuildNumberPipeline.run(
NextBuildNumberPipeline(), master_name, builder_name,
master_build_number, build_number, step_name,
- test_name, test_result_future, queue_name,
+ test_name, analysis.version_number, test_result_future, queue_name,
flakiness_algorithm_results_dict)
self.assertEquals(flakiness_algorithm_results_dict['stable_in_a_row'], 1)
@@ -209,16 +212,16 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
master_name, builder_name, build_number, step_name,
test_name, status=analysis_status.COMPLETED
)
- analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
- build_number, step_name, test_name)
- analysis.success_rates.append(0)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name)
+ analysis.pass_rates.append(0)
analysis.build_numbers.append(100)
analysis.put()
NextBuildNumberPipeline.run(
NextBuildNumberPipeline(), master_name, builder_name,
master_build_number, build_number, step_name,
- test_name, test_result_future, queue_name,
+ test_name, analysis.version_number, test_result_future, queue_name,
flakiness_algorithm_results_dict)
self.assertEquals(flakiness_algorithm_results_dict['stabled_out'], True)
@@ -251,20 +254,19 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
master_name, builder_name, build_number, step_name,
test_name, status=analysis_status.COMPLETED
)
- analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
- build_number, step_name, test_name)
- analysis.success_rates.append(.50)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name)
+ analysis.pass_rates.append(.50)
analysis.build_numbers.append(100)
analysis.put()
NextBuildNumberPipeline.run(
NextBuildNumberPipeline(), master_name, builder_name,
master_build_number, build_number, step_name,
- test_name, test_result_future, queue_name,
+ test_name, analysis.version_number, test_result_future, queue_name,
flakiness_algorithm_results_dict)
self.assertEquals(flakiness_algorithm_results_dict['flaked_out'], True)
-
def testNextBuildPipelineForNewRecursionLessThanLastBuildNumber(self):
master_name = 'm'
builder_name = 'b'
@@ -293,9 +295,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
master_name, builder_name, build_number, step_name,
test_name, status=analysis_status.COMPLETED
)
- analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
- build_number, step_name, test_name)
- analysis.success_rates.append(.50)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name)
+ analysis.pass_rates.append(.50)
analysis.build_numbers.append(100)
analysis.put()
@@ -308,7 +310,8 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
NextBuildNumberPipeline.run(
NextBuildNumberPipeline(), master_name, builder_name,
master_build_number, build_number, step_name, test_name,
- test_result_future, queue_name, flakiness_algorithm_results_dict)
+ analysis.version_number, test_result_future, queue_name,
+ flakiness_algorithm_results_dict)
self.assertFalse(queue_name['x'])
def testNextBuildPipelineForFailedSwarmingTask(self):
@@ -340,9 +343,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
master_name, builder_name, build_number, step_name,
test_name, status=analysis_status.ERROR
)
- analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
- build_number, step_name, test_name)
- analysis.success_rates.append(.50)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name)
+ analysis.pass_rates.append(.50)
analysis.build_numbers.append(100)
analysis.put()
@@ -354,7 +357,7 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
recursive_flake_pipeline.RecursiveFlakePipeline, 'start', my_mocked_run)
NextBuildNumberPipeline.run(
NextBuildNumberPipeline(), master_name, builder_name,
- master_build_number, build_number, step_name, test_name,
+ master_build_number, build_number, step_name, test_name, 1,
test_result_future, queue_name, flakiness_algorithm_results_dict)
self.assertFalse(queue_name['x'])
@@ -386,9 +389,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
master_name, builder_name, build_number, step_name,
test_name, status=analysis_status.COMPLETED
)
- analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
- build_number, step_name, test_name)
- analysis.success_rates.append(.50)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name)
+ analysis.pass_rates.append(.50)
analysis.build_numbers.append(100)
analysis.put()
@@ -401,7 +404,8 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
NextBuildNumberPipeline.run(
NextBuildNumberPipeline(), master_name, builder_name,
master_build_number, build_number, step_name, test_name,
- test_result_future, queue_name, flakiness_algorithm_results_dict)
+ analysis.version_number, test_result_future, queue_name,
+ flakiness_algorithm_results_dict)
self.assertTrue(queue_name['x'])
def testGetNextRunSetStableLowerBoundary(self):
@@ -414,9 +418,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
master_name, builder_name, build_number, step_name,
test_name, status=analysis_status.PENDING
)
- analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
- build_number, step_name, test_name)
- analysis.success_rates.append(1)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name)
+ analysis.pass_rates.append(1)
analysis.build_numbers.append(100)
analysis.put()
@@ -447,9 +451,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
master_name, builder_name, build_number, step_name,
test_name, status=analysis_status.PENDING
)
- analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
- build_number, step_name, test_name)
- analysis.success_rates.append(.5)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name)
+ analysis.pass_rates.append(.5)
analysis.build_numbers.append(100)
analysis.put()
@@ -480,9 +484,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
master_name, builder_name, build_number, step_name,
test_name, status=analysis_status.PENDING
)
- analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
- build_number, step_name, test_name)
- analysis.success_rates.append(.5)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name)
+ analysis.pass_rates.append(.5)
analysis.build_numbers.append(100)
analysis.put()
@@ -510,9 +514,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
master_name, builder_name, build_number, step_name,
test_name, status=analysis_status.PENDING
)
- analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
- build_number, step_name, test_name)
- analysis.success_rates.append(.5)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name)
+ analysis.pass_rates.append(.5)
analysis.build_numbers.append(100)
analysis.put()
@@ -541,9 +545,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
master_name, builder_name, build_number, step_name,
test_name, status=analysis_status.PENDING
)
- analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
- build_number, step_name, test_name)
- analysis.success_rates.append(1)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name)
+ analysis.pass_rates.append(1)
analysis.build_numbers.append(100)
analysis.put()
@@ -562,7 +566,6 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
self.assertEqual(next_run, False)
self.assertEqual(analysis.suspected_flake_build_number, 101)
-
def testSequentialDidntFindBorderStable(self):
master_name = 'm'
builder_name = 'b'
@@ -573,9 +576,9 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
master_name, builder_name, build_number, step_name,
test_name, status=analysis_status.PENDING
)
- analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
- build_number, step_name, test_name)
- analysis.success_rates.append(1)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name)
+ analysis.pass_rates.append(1)
analysis.build_numbers.append(100)
analysis.put()
@@ -623,22 +626,23 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
master_name, builder_name, build_number, step_name,
test_name, status=analysis_status.COMPLETED
)
- analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
- build_number, step_name, test_name)
- analysis.success_rates.append(1)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name)
+ analysis.pass_rates.append(1)
analysis.build_numbers.append(50)
analysis.put()
NextBuildNumberPipeline.run(
NextBuildNumberPipeline(), master_name, builder_name,
master_build_number, build_number, step_name, test_name,
- test_result_future, queue_name, flakiness_algorithm_results_dict)
+ analysis.version_number, test_result_future, queue_name,
+ flakiness_algorithm_results_dict)
self.assertEquals(
flakiness_algorithm_results_dict['sequential_run_index'], 1)
def testNextBuildWhenTestNotExistingAfterStableInARow(self):
master = MasterFlakeAnalysis.Create('m', 'b', 100, 's', 't')
- master.success_rates = [0.8, 1.0, 1.0, -1]
+ master.pass_rates = [0.8, 1.0, 1.0, -1]
master.build_numbers = [100, 80, 70, 60]
flakiness_algorithm_results_dict = {
'flakes_in_a_row': 0,
@@ -662,7 +666,7 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
def testNextBuildWhenTestNotExistingAfterFlakeInARow(self):
master = MasterFlakeAnalysis.Create('m', 'b', 100, 's', 't')
- master.success_rates = [0.8, 0.7, 0.75, -1]
+ master.pass_rates = [0.8, 0.7, 0.75, -1]
master.build_numbers = [100, 80, 70, 60]
flakiness_algorithm_results_dict = {
'flakes_in_a_row': 3,
@@ -706,16 +710,14 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
}
self._CreateAndSaveMasterFlakeAnalysis(
master_name, builder_name, master_build_number, step_name,
- test_name, status=analysis_status.RUNNING
- )
+ test_name, status=analysis_status.RUNNING)
self._CreateAndSaveFlakeSwarmingTask(
master_name, builder_name, build_number, step_name,
- test_name, status=analysis_status.COMPLETED
- )
- analysis = MasterFlakeAnalysis.Get(
- master_name, builder_name,
- master_build_number, step_name, test_name)
- analysis.success_rates = [1.0, 1.0, 1.0, -1]
+ test_name, status=analysis_status.COMPLETED)
+
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, master_build_number, step_name, test_name)
+ analysis.pass_rates = [1.0, 1.0, 1.0, -1]
analysis.build_numbers = [100, 80, 70, 60]
analysis.put()
@@ -723,11 +725,11 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
pipeline.run(
master_name, builder_name,
master_build_number, build_number, step_name, test_name,
- test_result_future, queue_name, flakiness_algorithm_results_dict)
+ analysis.version_number, test_result_future, queue_name,
+ flakiness_algorithm_results_dict)
- analysis = MasterFlakeAnalysis.Get(
- master_name, builder_name,
- master_build_number, step_name, test_name)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, master_build_number, step_name, test_name)
self.assertEqual(analysis_status.COMPLETED, analysis.status)
def testNextBuildNumberIsSmallerThanLastBuildNumber(self):
@@ -750,28 +752,24 @@ class RecursiveFlakePipelineTest(wf_testcase.WaterfallTestCase):
'lower_boundary_result': None,
'sequential_run_index': 0
}
- self._CreateAndSaveMasterFlakeAnalysis(
- master_name, builder_name, master_build_number, step_name,
- test_name, status=analysis_status.RUNNING
- )
+ analysis = MasterFlakeAnalysis.Create(
+ master_name, builder_name, master_build_number, step_name, test_name)
+ analysis.pass_rates = [1.0, 1.0, 1.0, 1.0]
+ analysis.build_numbers = [100, 80, 70, 60]
+ analysis.status = analysis_status.RUNNING
+ analysis.Save()
+
self._CreateAndSaveFlakeSwarmingTask(
master_name, builder_name, build_number, step_name,
- test_name, status=analysis_status.COMPLETED
- )
- analysis = MasterFlakeAnalysis.Get(
- master_name, builder_name,
- master_build_number, step_name, test_name)
- analysis.success_rates = [1.0, 1.0, 1.0, 1.0]
- analysis.build_numbers = [100, 80, 70, 60]
- analysis.put()
+ test_name, status=analysis_status.COMPLETED)
pipeline = NextBuildNumberPipeline()
pipeline.run(
master_name, builder_name,
master_build_number, build_number, step_name, test_name,
- test_result_future, queue_name, flakiness_algorithm_results_dict)
+ analysis.version_number, test_result_future, queue_name,
+ flakiness_algorithm_results_dict)
- analysis = MasterFlakeAnalysis.Get(
- master_name, builder_name,
- master_build_number, step_name, test_name)
+ analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, master_build_number, step_name, test_name)
self.assertEqual(analysis_status.COMPLETED, analysis.status)

Powered by Google App Engine
This is Rietveld 408576698