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

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

Issue 2116073002: [Findit] Fix redirect bug and update template for waterfall/culprit. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 4 years, 5 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
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 13 matching lines...) Expand all
24 rietveld_requests.append((url, message)) 24 rietveld_requests.append((url, message))
25 return True 25 return True
26 self.mock(Rietveld, 'PostMessage', Mocked_Rietveld_PostMessage) 26 self.mock(Rietveld, 'PostMessage', Mocked_Rietveld_PostMessage)
27 27
28 def _MockGitRepository(self, mocked_url): 28 def _MockGitRepository(self, mocked_url):
29 def Mocked_GetChangeLog(*_): 29 def Mocked_GetChangeLog(*_):
30 class MockedChangeLog(object): 30 class MockedChangeLog(object):
31 @property 31 @property
32 def code_review_url(self): 32 def code_review_url(self):
33 return mocked_url 33 return mocked_url
34
34 @property 35 @property
35 def committer_time(self): 36 def committer_time(self):
36 return _MOCKED_COMMIT_TIME 37 return _MOCKED_COMMIT_TIME
38
39 @property
40 def commit_position(self):
41 return 123
42
37 return MockedChangeLog() 43 return MockedChangeLog()
38 self.mock(GitRepository, 'GetChangeLog', Mocked_GetChangeLog) 44 self.mock(GitRepository, 'GetChangeLog', Mocked_GetChangeLog)
39 45
40 def _MockDatetimeUtcNow(self): 46 def _MockDatetimeUtcNow(self):
41 class Mocked_Datetime(object): 47 class Mocked_Datetime(object):
42 @staticmethod 48 @staticmethod
43 def utcnow(): 49 def utcnow():
44 return _MOCKED_DATETIME_UTCNOW 50 return _MOCKED_DATETIME_UTCNOW
45 self.mock(send_notification_for_culprit_pipeline, 51 self.mock(send_notification_for_culprit_pipeline,
46 'datetime', Mocked_Datetime) 52 'datetime', Mocked_Datetime)
47 53
48 def testShouldNotSendNotificationForSingleFailedBuild(self): 54 def testShouldNotSendNotificationForSingleFailedBuild(self):
49 self.assertFalse( 55 self.assertFalse(
50 send_notification_for_culprit_pipeline._ShouldSendNotification( 56 send_notification_for_culprit_pipeline._ShouldSendNotification(
51 'm', 'b1', 1, 'chromium', 'r1', 2, False)) 57 'm', 'b1', 1, 'chromium', 'r1', 123, 2, False))
52 culprit = WfCulprit.Get('chromium', 'r1') 58 culprit = WfCulprit.Get('chromium', 'r1')
53 self.assertIsNotNone(culprit) 59 self.assertIsNotNone(culprit)
54 self.assertEqual([['m', 'b1', 1]], culprit.builds) 60 self.assertEqual([['m', 'b1', 1]], culprit.builds)
55 61
56 def testShouldNotSendNotificationForSameFailedBuild(self): 62 def testShouldNotSendNotificationForSameFailedBuild(self):
57 self.assertFalse( 63 self.assertFalse(
58 send_notification_for_culprit_pipeline._ShouldSendNotification( 64 send_notification_for_culprit_pipeline._ShouldSendNotification(
59 'm', 'b2', 2, 'chromium', 'r2', 2, False)) 65 'm', 'b2', 2, 'chromium', 'r2', 123, 2, False))
60 self.assertFalse( 66 self.assertFalse(
61 send_notification_for_culprit_pipeline._ShouldSendNotification( 67 send_notification_for_culprit_pipeline._ShouldSendNotification(
62 'm', 'b2', 2, 'chromium', 'r2', 2, False)) 68 '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)
66 72
67 def testShouldSendNotificationForSecondFailedBuild(self): 73 def testShouldSendNotificationForSecondFailedBuild(self):
68 self.assertFalse( 74 self.assertFalse(
69 send_notification_for_culprit_pipeline._ShouldSendNotification( 75 send_notification_for_culprit_pipeline._ShouldSendNotification(
70 'm', 'b31', 31, 'chromium', 'r3', 2, False)) 76 'm', 'b31', 31, 'chromium', 'r3', 123, 2, False))
71 self.assertTrue( 77 self.assertTrue(
72 send_notification_for_culprit_pipeline._ShouldSendNotification( 78 send_notification_for_culprit_pipeline._ShouldSendNotification(
73 'm', 'b32', 32, 'chromium', 'r3', 2, False)) 79 'm', 'b32', 32, 'chromium', 'r3', 123, 2, False))
74 culprit = WfCulprit.Get('chromium', 'r3') 80 culprit = WfCulprit.Get('chromium', 'r3')
75 self.assertIsNotNone(culprit) 81 self.assertIsNotNone(culprit)
76 self.assertEqual(status.RUNNING, culprit.cr_notification_status) 82 self.assertEqual(status.RUNNING, culprit.cr_notification_status)
77 self.assertEqual([['m', 'b31', 31], ['m', 'b32', 32]], culprit.builds) 83 self.assertEqual([['m', 'b31', 31], ['m', 'b32', 32]], culprit.builds)
78 84
79 def testShouldNotSendNotificationForFirstFailedBuildCycle(self): 85 def testShouldNotSendNotificationForFirstFailedBuildCycle(self):
80 rietveld_requests = [] 86 rietveld_requests = []
81 self._MockRietveld(rietveld_requests) 87 self._MockRietveld(rietveld_requests)
82 self._MockGitRepository('url') 88 self._MockGitRepository('url')
83 self._MockDatetimeUtcNow() 89 self._MockDatetimeUtcNow()
84 90
85 pipeline = SendNotificationForCulpritPipeline() 91 pipeline = SendNotificationForCulpritPipeline()
86 self.assertFalse(pipeline.run('m', 'b4', 4, 'chromium', 'r4')) 92 self.assertFalse(pipeline.run('m', 'b4', 4, 'chromium', 'r4'))
87 self.assertEqual(0, len(rietveld_requests)) 93 self.assertEqual(0, len(rietveld_requests))
88 94
89 def testShouldNotSendNotificationIfNoCodeReview(self): 95 def testShouldNotSendNotificationIfNoCodeReview(self):
90 rietveld_requests = [] 96 rietveld_requests = []
91 self._MockRietveld(rietveld_requests) 97 self._MockRietveld(rietveld_requests)
92 self._MockGitRepository(None) 98 self._MockGitRepository(None)
93 self._MockDatetimeUtcNow() 99 self._MockDatetimeUtcNow()
94 culprit = WfCulprit.Create('chromium', 'r5') 100 culprit = WfCulprit.Create('chromium', 'r5', 123)
95 culprit.builds.append(['m', 'b51', 51]) 101 culprit.builds.append(['m', 'b51', 51])
96 culprit.put() 102 culprit.put()
97 103
98 pipeline = SendNotificationForCulpritPipeline() 104 pipeline = SendNotificationForCulpritPipeline()
99 self.assertFalse(pipeline.run('m', 'b52', 52, 'chromium', 'r5')) 105 self.assertFalse(pipeline.run('m', 'b52', 52, 'chromium', 'r5'))
100 self.assertEqual(0, len(rietveld_requests)) 106 self.assertEqual(0, len(rietveld_requests))
101 107
102 def testSendNotificationSuccess(self): 108 def testSendNotificationSuccess(self):
103 rietveld_requests = [] 109 rietveld_requests = []
104 self._MockRietveld(rietveld_requests) 110 self._MockRietveld(rietveld_requests)
105 self._MockGitRepository('url') 111 self._MockGitRepository('url')
106 self._MockDatetimeUtcNow() 112 self._MockDatetimeUtcNow()
107 culprit = WfCulprit.Create('chromium', 'r6') 113 culprit = WfCulprit.Create('chromium', 'r6', 123)
108 culprit.builds.append(['m', 'b61', 61]) 114 culprit.builds.append(['m', 'b61', 61])
109 culprit.put() 115 culprit.put()
110 116
111 pipeline = SendNotificationForCulpritPipeline() 117 pipeline = SendNotificationForCulpritPipeline()
112 self.assertTrue(pipeline.run('m', 'b62', 62, 'chromium', 'r6')) 118 self.assertTrue(pipeline.run('m', 'b62', 62, 'chromium', 'r6'))
113 self.assertEqual(1, len(rietveld_requests)) 119 self.assertEqual(1, len(rietveld_requests))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698