| | 52 | # Two builders on different branches, we'll add a change for one to make |
|---|
| | 53 | # sure it resets its timer properly, and that the other one doesn't |
|---|
| | 54 | # Timeline is like this: |
|---|
| | 55 | # (second) : (event) : (function) : (builds running at start of function) |
|---|
| | 56 | # 0 : Builds - a,b : testIdle1 : <none> |
|---|
| | 57 | # 1 : <nothing> : <none> : <n/a> |
|---|
| | 58 | # 2 : addChange - a, Build - a : testIdle1_1 : a: 1, b: 1 |
|---|
| | 59 | # 3 : <nothing> : testIdle1_2 : a: 2, b: 1 |
|---|
| | 60 | # 4 : Build - b : <none> : <n/a> |
|---|
| | 61 | # 5 : <nothing> : testIdle1_3 : a: 2, b: 2 |
|---|
| | 62 | # 6 : Build - a : <none> : <n/a> |
|---|
| | 63 | # 7 : <nothing> : testIdle1_4 : a: 3, b: 2 |
|---|
| | 64 | def testIdle1(self): |
|---|
| | 65 | idle = scheduler.Idle("quick", "a", "a", 4) |
|---|
| | 66 | idle2 = scheduler.Idle("quick2", "b", "b", 4) |
|---|
| | 67 | normal = scheduler.Scheduler("normal", "a", 0, ["0"]) |
|---|
| | 68 | self.addScheduler(idle) |
|---|
| | 69 | self.addScheduler(idle2) |
|---|
| | 70 | self.addScheduler(normal) |
|---|
| | 71 | d = defer.Deferred() |
|---|
| | 72 | reactor.callLater(2, d.callback, None) |
|---|
| | 73 | d.addCallback(self._testIdle1_1, [idle, idle2, normal]) |
|---|
| | 74 | return d |
|---|
| | 75 | |
|---|
| | 76 | def _testIdle1_1(self, res, schedulers): |
|---|
| | 77 | self.failUnless(len(self.master.getSetsForBuilder('a')) == 1) |
|---|
| | 78 | self.failUnless(len(self.master.getSetsForBuilder('b')) == 1) |
|---|
| | 79 | c = Change('me', ['foo', 'bar'], 'blah', branch='a') |
|---|
| | 80 | for s in schedulers: |
|---|
| | 81 | s.addChange(c) |
|---|
| | 82 | d = defer.Deferred() |
|---|
| | 83 | reactor.callLater(1, d.callback, None) |
|---|
| | 84 | d.addCallback(self._testIdle1_2) |
|---|
| | 85 | return d |
|---|
| | 86 | |
|---|
| | 87 | def _testIdle1_2(self, res): |
|---|
| | 88 | self.failUnless(len(self.master.getSetsForBuilder('a')) == 2) |
|---|
| | 89 | self.failUnless(len(self.master.getSetsForBuilder('b')) == 1) |
|---|
| | 90 | d = defer.Deferred() |
|---|
| | 91 | reactor.callLater(2, d.callback, None) |
|---|
| | 92 | d.addCallback(self._testIdle1_3) |
|---|
| | 93 | return d |
|---|
| | 94 | |
|---|
| | 95 | def _testIdle1_3(self, res): |
|---|
| | 96 | self.failUnless(len(self.master.getSetsForBuilder('a')) == 2) |
|---|
| | 97 | self.failUnless(len(self.master.getSetsForBuilder('b')) == 2) |
|---|
| | 98 | d = defer.Deferred() |
|---|
| | 99 | reactor.callLater(2, d.callback, None) |
|---|
| | 100 | d.addCallback(self._testIdle1_4) |
|---|
| | 101 | return d |
|---|
| | 102 | |
|---|
| | 103 | def _testIdle1_4(self, res): |
|---|
| | 104 | self.failUnless(len(self.master.getSetsForBuilder('a')) == 3) |
|---|
| | 105 | self.failUnless(len(self.master.getSetsForBuilder('b')) == 2) |
|---|
| | 106 | |
|---|