| | 218 | class Idle(RunMixin, unittest.TestCase): |
|---|
| | 219 | def setUp(self): |
|---|
| | 220 | RunMixin.setUp(self) |
|---|
| | 221 | |
|---|
| | 222 | self.master.loadConfig(config_can_build) |
|---|
| | 223 | self.master.readConfig = True |
|---|
| | 224 | self.master.startService() |
|---|
| | 225 | |
|---|
| | 226 | return self.connectSlave() |
|---|
| | 227 | |
|---|
| | 228 | def isBusy(self): |
|---|
| | 229 | b = self.master.botmaster.builders['dummy'].builder_status |
|---|
| | 230 | return b.isBusy() |
|---|
| | 231 | |
|---|
| | 232 | def doBuild(self): |
|---|
| | 233 | c = changes.Change("foo", ["blah"], "stuff") |
|---|
| | 234 | self.master.change_svc.addChange(c) |
|---|
| | 235 | |
|---|
| | 236 | def testIsIdle(self): |
|---|
| | 237 | self.failIf(self.isBusy()) |
|---|
| | 238 | |
|---|
| | 239 | def testIsBusy(self): |
|---|
| | 240 | self.doBuild() |
|---|
| | 241 | d = defer.Deferred() |
|---|
| | 242 | # wait for it to start |
|---|
| | 243 | reactor.callLater(1, d.callback, None) |
|---|
| | 244 | d.addCallback(self._testIsBusy_1) |
|---|
| | 245 | return d |
|---|
| | 246 | |
|---|
| | 247 | def _testIsBusy_1(self, res): |
|---|
| | 248 | self.failUnless(self.isBusy()) |
|---|
| | 249 | d = defer.Deferred() |
|---|
| | 250 | reactor.callLater(4, d.callback, None) |
|---|
| | 251 | d.addCallback(self._testIsBusy_2) |
|---|
| | 252 | return d |
|---|
| | 253 | |
|---|
| | 254 | def _testIsBusy_2(self, res): |
|---|
| | 255 | self.failIf(self.isBusy()) |
|---|
| | 256 | |
|---|
| | 257 | def testMultiBuild(self): |
|---|
| | 258 | self.doBuild() |
|---|
| | 259 | d = defer.Deferred() |
|---|
| | 260 | # wait for it to start |
|---|
| | 261 | reactor.callLater(1, d.callback, None) |
|---|
| | 262 | d.addCallback(self._testMultiBuild_1) |
|---|
| | 263 | return d |
|---|
| | 264 | |
|---|
| | 265 | def _testMultiBuild_1(self, res): |
|---|
| | 266 | self.failUnless(self.isBusy()) |
|---|
| | 267 | self.doBuild() |
|---|
| | 268 | self.doBuild() |
|---|
| | 269 | d = defer.Deferred() |
|---|
| | 270 | reactor.callLater(4, d.callback, None) |
|---|
| | 271 | d.addCallback(self._testMultiBuild_2) |
|---|
| | 272 | return d |
|---|
| | 273 | |
|---|
| | 274 | def _testMultiBuild_2(self, res): |
|---|
| | 275 | self.failUnless(self.isBusy()) |
|---|
| | 276 | d = defer.Deferred() |
|---|
| | 277 | reactor.callLater(6, d.callback, None) |
|---|
| | 278 | d.addCallback(self._testMultiBuild_3) |
|---|
| | 279 | return d |
|---|
| | 280 | |
|---|
| | 281 | def _testMultiBuild_3(self, res): |
|---|
| | 282 | self.failIf(self.isBusy()) |
|---|
| | 283 | |
|---|
| | 284 | |
|---|
| | 285 | |
|---|