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

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: rebase Created 4 years, 2 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..51c704d4ba6f8322fa6fdb58bddc5e13f14adbff 100644
--- a/appengine/findit/waterfall/test/identify_culprit_pipeline_test.py
+++ b/appengine/findit/waterfall/test/identify_culprit_pipeline_test.py
@@ -5,9 +5,11 @@
from testing_utils import testing
from common.pipeline_wrapper import pipeline_handlers
+from common.waterfall import failure_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
@@ -15,120 +17,6 @@ from waterfall import identify_culprit_pipeline
class IdentifyCulpritPipelineTest(testing.AppengineTestCase):
app_module = pipeline_handlers._APP
- def testGetSuspectedCLs(self):
- dummy_result = {
- 'failures': [
- {
- 'step_name': 'a',
- 'first_failure': 98,
- 'last_pass': None,
- 'suspected_cls': [
- {
- 'build_number': 99,
- 'repo_name': 'chromium',
- 'revision': 'r99_1',
- 'commit_position': None,
- 'url': None,
- 'score': 1,
- 'hints': {
- 'modified f99_2.cc (and it was in log)': 1,
- },
- }
- ],
- },
- {
- 'step_name': 'b',
- 'first_failure': 98,
- 'last_pass': None,
- 'suspected_cls': [
- {
- 'build_number': 99,
- 'repo_name': 'chromium',
- 'revision': 'r99_2',
- 'commit_position': None,
- 'url': None,
- 'score': 5,
- 'hints': {
- 'added x/y/f99_1.cc (and it was in log)': 5,
- },
- }
- ],
- }
- ]
- }
-
- expected_suspected_cls = [
- {
- 'repo_name': 'chromium',
- 'revision': 'r99_1',
- 'commit_position': None,
- 'url': None
- },
- {
- 'repo_name': 'chromium',
- 'revision': 'r99_2',
- 'commit_position': None,
- 'url': None
- }
- ]
-
- self.assertEqual(expected_suspected_cls,
- identify_culprit_pipeline._GetSuspectedCLs(dummy_result))
-
- def testGetSuspectedCLsNoDuplicates(self):
- dummy_result = {
- 'failures': [
- {
- 'step_name': 'a',
- 'first_failure': 98,
- 'last_pass': None,
- 'suspected_cls': [
- {
- 'build_number': 99,
- 'repo_name': 'chromium',
- 'revision': 'r99_1',
- 'commit_position': None,
- 'url': None,
- 'score': 1,
- 'hints': {
- 'modified f99_2.cc (and it was in log)': 1,
- },
- }
- ],
- },
- {
- 'step_name': 'b',
- 'first_failure': 98,
- 'last_pass': None,
- 'suspected_cls': [
- {
- 'build_number': 99,
- 'repo_name': 'chromium',
- 'revision': 'r99_1',
- 'commit_position': None,
- 'url': None,
- 'score': 5,
- 'hints': {
- 'added x/y/f99_1.cc (and it was in log)': 5,
- },
- }
- ],
- }
- ]
- }
-
- expected_suspected_cls = [
- {
- 'repo_name': 'chromium',
- 'revision': 'r99_1',
- 'commit_position': None,
- 'url': None
- }
- ]
-
- self.assertEqual(expected_suspected_cls,
- identify_culprit_pipeline._GetSuspectedCLs(dummy_result))
-
def testGetResultAnalysisStatusFoundUntriaged(self):
dummy_result = {
'failures': [
@@ -211,6 +99,7 @@ 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 = {}
@@ -219,7 +108,7 @@ class IdentifyCulpritPipelineTest(testing.AppengineTestCase):
dummy_result = {'failures': []}
def MockAnalyzeBuildFailure(*_):
- return dummy_result
+ return dummy_result, []
self.mock(build_failure_analysis,
'AnalyzeBuildFailure', MockAnalyzeBuildFailure)
@@ -238,3 +127,54 @@ class IdentifyCulpritPipelineTest(testing.AppengineTestCase):
self.assertEqual(analysis_status.COMPLETED, analysis.status)
self.assertIsNone(analysis.result_status)
self.assertEqual(expected_suspected_cls, analysis.suspected_cls)
+
+ def testSaveSuspectedCLs(self):
+ suspected_cls = [
+ {
+ 'repo_name': 'chromium',
+ 'revision': 'r98_1',
+ 'commit_position': None,
+ 'url': None,
+ 'failures': {
+ 'b': ['Unittest2.Subtest1', 'Unittest3.Subtest2']
+ },
+ 'top_score': 4
+ }
+ ]
+ master_name = 'm'
+ builder_name = 'b'
+ build_number = 98
+ test_type = failure_type.TEST
+
+ identify_culprit_pipeline._SaveSuspectedCLs(
+ suspected_cls, master_name, builder_name, build_number, test_type)
+
+ suspected_cl = WfSuspectedCL.Get('chromium', 'r98_1')
+ self.assertIsNotNone(suspected_cl)
+
+ def testGetSuspectedCLsWithOnlyCLInfo(self):
+ suspected_cls = [
+ {
+ 'repo_name': 'chromium',
+ 'revision': 'r98_1',
+ 'commit_position': None,
+ 'url': None,
+ 'failures': {
+ 'b': ['Unittest2.Subtest1', 'Unittest3.Subtest2']
+ },
+ 'top_score': 4
+ }
+ ]
+
+ expected_new_suspected_cls = [
+ {
+ 'repo_name': 'chromium',
+ 'revision': 'r98_1',
+ 'commit_position': None,
+ 'url': None
+ }
+ ]
+
+ self.assertEqual(
+ expected_new_suspected_cls,
+ identify_culprit_pipeline._GetSuspectedCLsWithOnlyCLInfo(suspected_cls))

Powered by Google App Engine
This is Rietveld 408576698