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

Side by Side Diff: appengine/findit/waterfall/test/send_notification_for_culprit_pipeline_test.py

Issue 2302223002: [Findit] Change the criteria of sending notification to code review. (Closed)
Patch Set: . 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 unified diff | Download patch
« no previous file with comments | « appengine/findit/waterfall/test/identify_try_job_culprit_pipeline_test.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import datetime 5 import datetime
6 6
7 from common.git_repository import GitRepository 7 from common.git_repository import GitRepository
8 from common.rietveld import Rietveld 8 from common.rietveld import Rietveld
9 from model import analysis_status as status 9 from model import analysis_status as status
10 from model.wf_culprit import WfCulprit 10 from model.wf_culprit import WfCulprit
(...skipping 28 matching lines...) Expand all
39 39
40 return MockedChangeLog() 40 return MockedChangeLog()
41 self.mock(GitRepository, 'GetChangeLog', Mocked_GetChangeLog) 41 self.mock(GitRepository, 'GetChangeLog', Mocked_GetChangeLog)
42 42
43 def _MockBuildEndTime(self): 43 def _MockBuildEndTime(self):
44 def Mocked_GetBuildEndTime(*_): 44 def Mocked_GetBuildEndTime(*_):
45 return _MOCKED_BUILD_END_TIME 45 return _MOCKED_BUILD_END_TIME
46 self.mock(build_util, 'GetBuildEndTime', Mocked_GetBuildEndTime) 46 self.mock(build_util, 'GetBuildEndTime', Mocked_GetBuildEndTime)
47 47
48 def testShouldNotSendNotificationForSingleFailedBuild(self): 48 def testShouldNotSendNotificationForSingleFailedBuild(self):
49 additional_criteria = {
50 'within_time_limit': True
51 }
49 self.assertFalse( 52 self.assertFalse(
50 send_notification_for_culprit_pipeline._ShouldSendNotification( 53 send_notification_for_culprit_pipeline._ShouldSendNotification(
51 'm', 'b1', 1, 'chromium', 'r1', 123, 2, False)) 54 'm', 'b1', 1, 'chromium', 'r1', 123, 2, additional_criteria, False))
52 culprit = WfCulprit.Get('chromium', 'r1') 55 culprit = WfCulprit.Get('chromium', 'r1')
53 self.assertIsNotNone(culprit) 56 self.assertIsNotNone(culprit)
54 self.assertEqual([['m', 'b1', 1]], culprit.builds) 57 self.assertEqual([['m', 'b1', 1]], culprit.builds)
55 58
56 def testShouldNotSendNotificationForSameFailedBuild(self): 59 def testShouldNotSendNotificationForSameFailedBuild(self):
60 additional_criteria = {
61 'within_time_limit': True
62 }
63 self.assertTrue(
64 send_notification_for_culprit_pipeline._ShouldSendNotification(
65 'm', 'b2', 2, 'chromium', 'r2', 123, 2, additional_criteria, True))
57 self.assertFalse( 66 self.assertFalse(
58 send_notification_for_culprit_pipeline._ShouldSendNotification( 67 send_notification_for_culprit_pipeline._ShouldSendNotification(
59 'm', 'b2', 2, 'chromium', 'r2', 123, 2, False)) 68 'm', 'b2', 2, 'chromium', 'r2', 123, 2, additional_criteria, True))
60 self.assertFalse(
61 send_notification_for_culprit_pipeline._ShouldSendNotification(
62 'm', 'b2', 2, 'chromium', 'r2', 123, 2, False))
63 culprit = WfCulprit.Get('chromium', 'r2') 69 culprit = WfCulprit.Get('chromium', 'r2')
64 self.assertIsNotNone(culprit) 70 self.assertIsNotNone(culprit)
65 self.assertEqual([['m', 'b2', 2]], culprit.builds) 71 self.assertEqual([['m', 'b2', 2]], culprit.builds)
72 self.assertEqual(status.RUNNING, culprit.cr_notification_status)
66 73
67 def testShouldSendNotificationForSecondFailedBuild(self): 74 def testShouldSendNotificationForSecondFailedBuild(self):
75 additional_criteria = {
76 'within_time_limit': True
77 }
68 self.assertFalse( 78 self.assertFalse(
69 send_notification_for_culprit_pipeline._ShouldSendNotification( 79 send_notification_for_culprit_pipeline._ShouldSendNotification(
70 'm', 'b31', 31, 'chromium', 'r3', 123, 2, False)) 80 'm', 'b31', 31, 'chromium', 'r3', 123, 2, additional_criteria,
81 False))
71 self.assertTrue( 82 self.assertTrue(
72 send_notification_for_culprit_pipeline._ShouldSendNotification( 83 send_notification_for_culprit_pipeline._ShouldSendNotification(
73 'm', 'b32', 32, 'chromium', 'r3', 123, 2, False)) 84 'm', 'b32', 32, 'chromium', 'r3', 123, 2, additional_criteria,
85 False))
74 culprit = WfCulprit.Get('chromium', 'r3') 86 culprit = WfCulprit.Get('chromium', 'r3')
75 self.assertIsNotNone(culprit) 87 self.assertIsNotNone(culprit)
76 self.assertEqual(status.RUNNING, culprit.cr_notification_status) 88 self.assertEqual(status.RUNNING, culprit.cr_notification_status)
77 self.assertEqual([['m', 'b31', 31], ['m', 'b32', 32]], culprit.builds) 89 self.assertEqual([['m', 'b31', 31], ['m', 'b32', 32]], culprit.builds)
78 90
79 def testShouldNotSendNotificationForFirstFailedBuildCycle(self): 91 def testShouldNotSendNotificationIfTimePassed(self):
80 rietveld_requests = [] 92 additional_criteria = {
81 self._MockRietveld(rietveld_requests) 93 'within_time_limit': False
82 self._MockGitRepository('url') 94 }
83 self.MockUTCNow(_MOCKED_DATETIME_UTCNOW) 95 self.assertFalse(
84 self._MockBuildEndTime() 96 send_notification_for_culprit_pipeline._ShouldSendNotification(
85 97 'm', 'b2', 2, 'chromium', 'r2', 123, 2, additional_criteria, True))
86 pipeline = SendNotificationForCulpritPipeline()
87 self.assertFalse(pipeline.run('m', 'b4', 4, 'chromium', 'r4'))
88 self.assertEqual(0, len(rietveld_requests))
89 98
90 def testShouldNotSendNotificationIfNoCodeReview(self): 99 def testShouldNotSendNotificationIfNoCodeReview(self):
91 rietveld_requests = [] 100 rietveld_requests = []
92 self._MockRietveld(rietveld_requests) 101 self._MockRietveld(rietveld_requests)
93 self._MockGitRepository(None) 102 self._MockGitRepository(None)
94 self.MockUTCNow(_MOCKED_DATETIME_UTCNOW) 103 self.MockUTCNow(_MOCKED_DATETIME_UTCNOW)
95 self._MockBuildEndTime() 104 self._MockBuildEndTime()
96 culprit = WfCulprit.Create('chromium', 'r5', 123) 105 culprit = WfCulprit.Create('chromium', 'r5', 123)
97 culprit.builds.append(['m', 'b51', 51]) 106 culprit.builds.append(['m', 'b51', 51])
98 culprit.put() 107 culprit.put()
99 108
100 pipeline = SendNotificationForCulpritPipeline() 109 pipeline = SendNotificationForCulpritPipeline()
101 self.assertFalse(pipeline.run('m', 'b52', 52, 'chromium', 'r5')) 110 self.assertFalse(pipeline.run('m', 'b52', 52, 'chromium', 'r5', False))
102 self.assertEqual(0, len(rietveld_requests)) 111 self.assertEqual(0, len(rietveld_requests))
103 112
104 def testSendNotificationSuccess(self): 113 def testSendNotificationSuccess(self):
105 rietveld_requests = [] 114 rietveld_requests = []
106 self._MockRietveld(rietveld_requests) 115 self._MockRietveld(rietveld_requests)
107 self._MockGitRepository('url') 116 self._MockGitRepository('url')
108 self.MockUTCNow(_MOCKED_DATETIME_UTCNOW) 117 self.MockUTCNow(_MOCKED_DATETIME_UTCNOW)
109 self._MockBuildEndTime() 118 self._MockBuildEndTime()
110 culprit = WfCulprit.Create('chromium', 'r6', 123) 119 culprit = WfCulprit.Create('chromium', 'r6', 123)
111 culprit.builds.append(['m', 'b61', 61]) 120 culprit.builds.append(['m', 'b61', 61])
112 culprit.put() 121 culprit.put()
113 122
114 pipeline = SendNotificationForCulpritPipeline() 123 pipeline = SendNotificationForCulpritPipeline()
115 self.assertTrue(pipeline.run('m', 'b62', 62, 'chromium', 'r6')) 124 self.assertTrue(pipeline.run('m', 'b62', 62, 'chromium', 'r6', False))
116 self.assertEqual(1, len(rietveld_requests)) 125 self.assertEqual(1, len(rietveld_requests))
126
127 def testDontSendNotificationIfShouldNot(self):
128 rietveld_requests = []
129 self._MockRietveld(rietveld_requests)
130 self._MockGitRepository('url')
131 self.MockUTCNow(_MOCKED_DATETIME_UTCNOW)
132 self._MockBuildEndTime()
133 culprit = WfCulprit.Create('chromium', 'r7', 123)
134 culprit.builds.append(['m', 'b71', 71])
135 culprit.put()
136
137 pipeline = SendNotificationForCulpritPipeline()
138 self.assertFalse(pipeline.run('m', 'b71', 71, 'chromium', 'r7', False))
139 self.assertEqual(0, len(rietveld_requests))
OLDNEW
« no previous file with comments | « appengine/findit/waterfall/test/identify_try_job_culprit_pipeline_test.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698