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

Unified Diff: appengine/findit/waterfall/test/identify_culprit_pipeline_test.py

Issue 2230103002: [Findit] Pipeline change to save suspected cls to data store. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@0808-resubmit-suspected_cl_model
Patch Set: . Created 4 years, 4 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/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([]))

Powered by Google App Engine
This is Rietveld 408576698