def testSpecificNightlyScheduler(self): createTestData(self.dbc) ssFunc = lastGoodFunc('b2', ['builder1', 'builder2']) s = SpecificNightly(ssFunc, name='s', builderNames=['nightly1']) s.parent = mock.Mock() s.parent.db = self.dbc d = self.dbc.addSchedulers([s]) def startBuild(ign): return self.dbc.runInteractionNow(lambda t: s.start_HEAD_build(t)) d.addCallback(startBuild) def check(ign): # Check that we have a buildrequest for revision r1 req = self.dbc.runQueryNow(""" SELECT * FROM buildrequests, buildsets, sourcestamps WHERE buildrequests.buildsetid = buildsets.id AND buildsets.sourcestampid = sourcestamps.id AND buildername='nightly1' AND revision = 'r1' """) self.assertEquals(len(req), 1) return d
def test_lastGoodFunc(self): createTestData(self.dbc) with mock.patch('time.time') as t: # Check that ssFunc returns something for both branches t.return_value = 10 ssFunc = lastGoodFunc('b1', ['builder1', 'builder2']) ss = self.dbc.runInteractionNow(lambda t: ssFunc(self.s, t)) self.assertEquals(ss.revision, 'r1') t.return_value = 10 ssFunc = lastGoodFunc('b2', ['builder1', 'builder2']) ss = self.dbc.runInteractionNow(lambda t: ssFunc(self.s, t)) self.assertEquals(ss.revision, 'r234567890') # Check that ssFunc returns None if triggerBuildIfNoChanges=False # and there are no good builds in the past 24 hours. # We achieve this by faking the clock t.return_value = 48 * 3600 ssFunc = lastGoodFunc('b1', ['builder1', 'builder2'], triggerBuildIfNoChanges=False) ss = self.dbc.runInteractionNow(lambda t: ssFunc(self.s, t)) self.assertEquals(ss, None) # Check that ssFunc returns something if triggerBuildIfNoChanges=False # and there are no good builds in the past 24 hours, but there are # l10n changes. t.return_value = 25 * 3600 ssFunc = lastGoodFunc('b2', ['builder1', 'builder2'], triggerBuildIfNoChanges=False, l10nBranch='b2-l10n') ss = self.dbc.runInteractionNow(lambda t: ssFunc(self.s, t)) self.assertEquals(ss.revision, 'r234567890') # Check that ssFunc returns None if triggerBuildIfNoChanges=False # and there are no good builds or l10n changes in the past 24 # hours. t.return_value = 72 * 3600 ssFunc = lastGoodFunc('b2', ['builder1', 'builder2'], triggerBuildIfNoChanges=False, l10nBranch='b2-l10n') ss = self.dbc.runInteractionNow(lambda t: ssFunc(self.s, t)) self.assertEquals(ss, None)
def test_lastGoodFunc(self): createTestData(self.dbc) with mock.patch('time.time') as t: # Check that ssFunc returns something for both branches t.return_value = 10 ssFunc = lastGoodFunc('b1', ['builder1', 'builder2']) ss = self.dbc.runInteractionNow(lambda t: ssFunc(self.s, t)) self.assertEquals(ss.revision, 'r1') t.return_value = 10 ssFunc = lastGoodFunc('b2', ['builder1', 'builder2']) ss = self.dbc.runInteractionNow(lambda t: ssFunc(self.s, t)) self.assertEquals(ss.revision, 'r234567890') # Check that ssFunc returns None if triggerBuildIfNoChanges=False # and there are no good builds in the past 24 hours. # We achieve this by faking the clock t.return_value = 48 * 3600 ssFunc = lastGoodFunc( 'b1', ['builder1', 'builder2'], triggerBuildIfNoChanges=False) ss = self.dbc.runInteractionNow(lambda t: ssFunc(self.s, t)) self.assertEquals(ss, None) # Check that ssFunc returns something if triggerBuildIfNoChanges=False # and there are no good builds in the past 24 hours, but there are # l10n changes. t.return_value = 25 * 3600 ssFunc = lastGoodFunc('b2', ['builder1', 'builder2'], triggerBuildIfNoChanges=False, l10nBranch='b2-l10n') ss = self.dbc.runInteractionNow(lambda t: ssFunc(self.s, t)) self.assertEquals(ss.revision, 'r234567890') # Check that ssFunc returns None if triggerBuildIfNoChanges=False # and there are no good builds or l10n changes in the past 24 # hours. t.return_value = 72 * 3600 ssFunc = lastGoodFunc('b2', ['builder1', 'builder2'], triggerBuildIfNoChanges=False, l10nBranch='b2-l10n') ss = self.dbc.runInteractionNow(lambda t: ssFunc(self.s, t)) self.assertEquals(ss, None)