aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_schedulers_timed_Periodic.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_schedulers_timed_Periodic.py')
-rw-r--r--lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_schedulers_timed_Periodic.py173
1 files changed, 0 insertions, 173 deletions
diff --git a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_schedulers_timed_Periodic.py b/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_schedulers_timed_Periodic.py
deleted file mode 100644
index 5139a96a..00000000
--- a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_schedulers_timed_Periodic.py
+++ /dev/null
@@ -1,173 +0,0 @@
-# This file is part of Buildbot. Buildbot is free software: you can
-# redistribute it and/or modify it under the terms of the GNU General Public
-# License as published by the Free Software Foundation, version 2.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Copyright Buildbot Team Members
-
-from twisted.trial import unittest
-from twisted.internet import task, defer
-from buildbot.schedulers import timed
-from buildbot import config
-
-class Periodic(unittest.TestCase):
-
- def makeScheduler(self, firstBuildDuration=0, exp_branch=None, **kwargs):
- self.sched = sched = timed.Periodic(**kwargs)
-
- # add a Clock to help checking timing issues
- self.clock = sched._reactor = task.Clock()
-
- # keep track of builds in self.events
- self.events = []
- def addBuildsetForLatest(reason=None, branch=None):
- self.assertIn('Periodic scheduler named', reason)
- self.assertEqual(branch, exp_branch)
- isFirst = (self.events == [])
- self.events.append('B@%d' % self.clock.seconds())
- if isFirst and firstBuildDuration:
- d = defer.Deferred()
- self.clock.callLater(firstBuildDuration, d.callback, None)
- return d
- else:
- return defer.succeed(None)
- sched.addBuildsetForLatest = addBuildsetForLatest
-
- # handle state locally
- self.state = {}
-
- def getState(k, default):
- return defer.succeed(self.state.get(k, default))
- sched.getState = getState
-
- def setState(k, v):
- self.state[k] = v
- return defer.succeed(None)
- sched.setState = setState
-
- return sched
-
- # tests
-
- def test_constructor_invalid(self):
- self.assertRaises(config.ConfigErrors,
- lambda : timed.Periodic(name='test', builderNames=[ 'test' ],
- periodicBuildTimer=-2))
-
- def test_iterations_simple(self):
- sched = self.makeScheduler(name='test', builderNames=[ 'test' ],
- periodicBuildTimer=13)
-
- sched.startService()
- self.clock.advance(0) # let it trigger the first build
- while self.clock.seconds() < 30:
- self.clock.advance(1)
- self.assertEqual(self.events, [ 'B@0', 'B@13', 'B@26' ])
- self.assertEqual(self.state.get('last_build'), 26)
-
- d = sched.stopService()
- return d
-
- def test_iterations_simple_branch(self):
- sched = self.makeScheduler(exp_branch='newfeature',
- name='test', builderNames=[ 'test' ],
- periodicBuildTimer=13, branch='newfeature')
-
- sched.startService()
- self.clock.advance(0) # let it trigger the first build
- while self.clock.seconds() < 30:
- self.clock.advance(1)
- self.assertEqual(self.events, [ 'B@0', 'B@13', 'B@26' ])
- self.assertEqual(self.state.get('last_build'), 26)
-
- d = sched.stopService()
- return d
-
- def test_iterations_long(self):
- sched = self.makeScheduler(name='test', builderNames=[ 'test' ],
- periodicBuildTimer=10,
- firstBuildDuration=15) # takes a while to start a build
-
- sched.startService()
- self.clock.advance(0) # let it trigger the first (longer) build
- while self.clock.seconds() < 40:
- self.clock.advance(1)
- self.assertEqual(self.events, [ 'B@0', 'B@15', 'B@25', 'B@35' ])
- self.assertEqual(self.state.get('last_build'), 35)
-
- d = sched.stopService()
- return d
-
- def test_iterations_stop_while_starting_build(self):
- sched = self.makeScheduler(name='test', builderNames=[ 'test' ],
- periodicBuildTimer=13,
- firstBuildDuration=6) # takes a while to start a build
-
- sched.startService()
- self.clock.advance(0) # let it trigger the first (longer) build
- self.clock.advance(3) # get partway into that build
-
- d = sched.stopService() # begin stopping the service
- d.addCallback(lambda _ : self.events.append('STOP@%d' % self.clock.seconds()))
-
- # run the clock out
- while self.clock.seconds() < 40:
- self.clock.advance(1)
-
- # note that the stopService completes after the first build completes, and no
- # subsequent builds occur
- self.assertEqual(self.events, [ 'B@0', 'STOP@6' ])
- self.assertEqual(self.state.get('last_build'), 0)
-
- return d
-
- def test_iterations_with_initial_state(self):
- sched = self.makeScheduler(name='test', builderNames=[ 'test' ],
- periodicBuildTimer=13)
- self.state['last_build'] = self.clock.seconds() - 7 # so next build should start in 6s
-
- sched.startService()
- self.clock.advance(0) # let it trigger the first build
- while self.clock.seconds() < 30:
- self.clock.advance(1)
- self.assertEqual(self.events, [ 'B@6', 'B@19' ])
- self.assertEqual(self.state.get('last_build'), 19)
-
- d = sched.stopService()
- return d
-
- def test_getNextBuildTime_None(self):
- sched = self.makeScheduler(name='test', builderNames=[ 'test' ],
- periodicBuildTimer=13)
- # given None, build right away
- d = sched.getNextBuildTime(None)
- d.addCallback(lambda t : self.assertEqual(t, 0))
- return d
-
- def test_getNextBuildTime_given(self):
- sched = self.makeScheduler(name='test', builderNames=[ 'test' ],
- periodicBuildTimer=13)
- # given a time, add the periodicBuildTimer to it
- d = sched.getNextBuildTime(20)
- d.addCallback(lambda t : self.assertEqual(t, 33))
- return d
-
- def test_getPendingBuildTimes(self):
- sched = self.makeScheduler(name='test', builderNames=[ 'test' ],
- periodicBuildTimer=13)
- self.state['last_build'] = self.clock.seconds() - 10 # so next build should start in 3s
-
- sched.startService()
- self.clock.advance(0) # let it schedule the first build
- self.assertEqual(sched.getPendingBuildTimes(), [ 3.0 ])
-
- d = sched.stopService()
- return d