| Index: appengine/findit/waterfall/test/identify_culprit_pipeline_test.py
|
| diff --git a/appengine/findit/waterfall/test/identify_culprit_pipeline_test.py b/appengine/findit/waterfall/test/identify_culprit_pipeline_test.py
|
| index 9d4bcdce1ff46ea75beaac3819d3292587289184..9ba2f38cec3468d94986f89dd143969974684570 100644
|
| --- a/appengine/findit/waterfall/test/identify_culprit_pipeline_test.py
|
| +++ b/appengine/findit/waterfall/test/identify_culprit_pipeline_test.py
|
| @@ -5,9 +5,12 @@
|
| from testing_utils import testing
|
|
|
| from common.pipeline_wrapper import pipeline_handlers
|
| +from common.waterfall import failure_type
|
| +from model import analysis_approach_type
|
| from model import analysis_status
|
| from model import result_status
|
| from model.wf_analysis import WfAnalysis
|
| +from model.wf_suspected_cl import WfSuspectedCL
|
| from waterfall import build_failure_analysis
|
| from waterfall import identify_culprit_pipeline
|
|
|
| @@ -201,6 +204,8 @@ class IdentifyCulpritPipelineTest(testing.AppengineTestCase):
|
| master_name = 'm'
|
| builder_name = 'b'
|
| build_number = 123
|
| + repo_name = 'chromium'
|
| + revision = 'r99_1'
|
|
|
| analysis = WfAnalysis.Create(master_name, builder_name, build_number)
|
| analysis.result = None
|
| @@ -211,12 +216,34 @@ class IdentifyCulpritPipelineTest(testing.AppengineTestCase):
|
| 'master_name': master_name,
|
| 'builder_name': builder_name,
|
| 'build_number': build_number,
|
| + 'failure_type': failure_type.TEST
|
| }
|
| change_logs = {}
|
| deps_info = {}
|
| signals = {}
|
|
|
| - dummy_result = {'failures': []}
|
| + dummy_result = {
|
| + 'failures': [
|
| + {
|
| + 'step_name': 'a',
|
| + 'first_failure': 98,
|
| + 'last_pass': None,
|
| + 'suspected_cls': [
|
| + {
|
| + 'build_number': 99,
|
| + 'repo_name': repo_name,
|
| + 'revision': revision,
|
| + 'commit_position': None,
|
| + 'url': None,
|
| + 'score': 1,
|
| + 'hints': {
|
| + 'modified f99_2.cc (and it was in log)': 1,
|
| + },
|
| + }
|
| + ],
|
| + }
|
| + ]
|
| + }
|
|
|
| def MockAnalyzeBuildFailure(*_):
|
| return dummy_result
|
| @@ -229,12 +256,30 @@ class IdentifyCulpritPipelineTest(testing.AppengineTestCase):
|
| pipeline.start()
|
| self.execute_queued_tasks()
|
|
|
| - expected_suspected_cls = []
|
| + expected_suspected_cls = [
|
| + {
|
| + 'repo_name': repo_name,
|
| + 'revision': revision,
|
| + 'commit_position': None,
|
| + 'url': None
|
| + }
|
| + ]
|
|
|
| analysis = WfAnalysis.Get(master_name, builder_name, build_number)
|
| self.assertTrue(analysis.build_completed)
|
| self.assertIsNotNone(analysis)
|
| self.assertEqual(dummy_result, analysis.result)
|
| self.assertEqual(analysis_status.COMPLETED, analysis.status)
|
| - self.assertIsNone(analysis.result_status)
|
| + self.assertIsNotNone(analysis.result_status)
|
| self.assertEqual(expected_suspected_cls, analysis.suspected_cls)
|
| +
|
| + suspected_cl = WfSuspectedCL.Get(repo_name, revision)
|
| + self.assertIsNotNone(suspected_cl)
|
| + self.assertEqual(
|
| + [[master_name, builder_name, build_number]], suspected_cl.builds)
|
| +
|
| + def testGetResultAnalysisStatusNone(self):
|
| + self.assertIsNone(identify_culprit_pipeline._GetResultAnalysisStatus([]))
|
| +
|
| + def testGetSuspectedCLsEmpty(self):
|
| + self.assertEqual([], identify_culprit_pipeline._GetSuspectedCLs([]))
|
|
|